2011-02-18 40 views
5

El uso de XSD quiero aceptar solamente la fecha del formato AAAAMMDD en mi campo xml .. Entonces, ¿cómo puedo hacer queXS: Fecha quiero fecha en formato AAAAMMDD

Vi esto en un ejemplo ¿funcionará esto?

+6

xs: la fecha será de la forma AAAA-MM-DD. ¿Por qué te importa qué formato es la fecha, en un xml? su aplicación debe encargarse de convertir esto al formato requerido. – asgs

Respuesta

9

Esquema XML definesdateTime como ISO8601 con algunas excepciones y debe seguir con esto, de lo contrario, tendrá graves problemas de interoperabilidad. Si desea enviar fecha/recepción utilizando el formato diferente, utilice simpleType con la restricción de la expresión regular y analizar/formato a la fecha en el código de aplicación:

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

si realmente quieren perder el tiempo con una función de los tipos (muy desaconsejable), su framework/biblioteca XML podría tener algún soporte para eso. Por ejemplo, en Java/JAXB puede aplicar transformadores/formateadores personalizados a cualquier tipo, de modo que en el código cliente/servidor todavía está utilizando el objeto Date (no el 8 dígitos String), pero se clasifica/desasigna utilizando su rutina personalizada.

+0

\t \t \t \t \t \t \t \t \t \t \t \t \t ¿Es este derecho ?? es la etiqueta CustomDate obligatoria –

+0

No, no puede usar tanto 'type' on element como' simpleType' anidado. Use only: ... y viva con cadenas. –

+1

Tengo un caso legítimo en el que el formato de fecha está definido por el estándar de atención médica como YYYY [MM [DD [hh [mm [ss]]]]. El problema es que XSLT no es compatible con ese formato, y la modificación del documento xs: date está fuera de discusión. –

Cuestiones relacionadas