2009-06-26 41 views

Respuesta

9

Siempre se puede definir como un tipo simple restringido basado en una cadena, limitada por una expresión regular:

<xs:simpleType name="FormattedDateType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="\d{8}"/> 
    </xs:restriction> 
</xs:simpleType> 

Si usted quiere conseguir realmente inteligente, se puede ajustar la expresión regular para ser aún más de un partido de la fecha (por ejemplo, contiene la información de ese mes sólo puede ser 01 - 12 y así sucesivamente):

<xs:simpleType name="FormattedDateType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="\d{4}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])"/> 
    </xs:restriction> 
</xs:simpleType> 

Marc

+0

Marc Yo conocía esta expresión, pero pensé que no era la correcta. Pensé que necesitaba extender xs: date y anular el formato. –

+0

Honestamente, nunca pensé en restringir xs: date o xs: dateTime, y establecer un patrón - no estoy seguro si funcionará - ¡pruébalo! –

+3

No puede extender un tipo simple (no a través de xs: extensión) y no puede restringir que algo no sea válido como parte de la base. Una fecha formateada 'aaaammdd' no es una xs: fecha válida (requiere el formato 'aaaa-mm-dd') por lo que necesita algo como la solución –

-2

Si desea que el formato de MM/DD/AA YY en xml, entonces este código puede ayudarlo con este formato

<xs:element name="StartDate"> 
    <xs:simpleType> 
     <xs:restriction base="xs:string"> 
     <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}"/> 
    <xs:length value="10"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:element> 
+0

\t \t \t \t \t \t \t \t

+0

intente ejecutar este –

+0

@SamirVasani, no creo que los esquemas XML admitan elementos de anclaje como^y $ cuando coincidan los patrones. ¿Has probado tu sugerencia? –