Используя XS:дата, я хочу дату в формате ГГГГММДД

Используя XSD, я хочу принимать только дату формата ГГГГММДД в ​​моем поле xml. Итак, как я могу это сделать

Я видел это в примере, это будет работать ??


person Praneel PIDIKITI    schedule 18.02.2011    source источник
comment
xs:date будет иметь вид ГГГГ-ММ-ДД. Почему вас волнует, в каком формате дата, в xml? ваше приложение должно позаботиться о преобразовании этого в требуемый формат.   -  person asgs    schedule 18.02.2011


Ответы (1)


Схема XML определяет dateTime как ISO8601 с некоторыми исключениями, и вы должны придерживаться этого , иначе вы получите серьезные проблемы с совместимостью. Если вы хотите отправить/получить дату в другом формате, используйте simpleType с ограничением регулярного выражения и проанализируйте/отформатируйте дату в коде вашего приложения:

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

Если вы действительно хотите возиться со встроенными типами (крайне нецелесообразно), ваша XML-инфраструктура/библиотека может иметь некоторую поддержку для этого. Например, в Java/JAXB вы можете применять пользовательские преобразователи/форматтеры к любому типу, так что в коде клиент/сервер вы по-прежнему используете объект Date (а не 8-значный String), но он маршалируется/демаршалируется с помощью вашей пользовательской процедуры.

person Tomasz Nurkiewicz    schedule 18.02.2011
comment
‹xs:имя элемента=BeginDate minOccurs=1 type=xs:date› ‹xs:simpleType name=CustomDate› ‹xs:база ограничения=xs:string› ‹xs:значение шаблона=\d{8}/› ‹/xs :restriction› ‹/xs:simpleType name=CustomDate› ‹/xs:element› Правильно ли это?? метка CustomDate обязательна - person Praneel PIDIKITI; 18.02.2011
comment
Нет, вы не можете использовать как type для элемента, так и вложенный simpleType. Используйте только: ‹xs:element name=BeginDate›‹xs:simpleType name=CustomDate›... и живите со строками. - person Tomasz Nurkiewicz; 18.02.2011
comment
У меня есть законный случай, когда формат даты определяется стандартом здравоохранения как YYYY[MM[DD[hh[mm[ss]]]]]. Проблема в том, что XSLT не поддерживает этот формат, и об изменении документа xs:date не может быть и речи. - person code-gijoe; 28.11.2012
comment
ты про хл7? Как вы потом его разобрали - person JohnTheBeloved; 30.09.2017