Используя XSD, я хочу принимать только дату формата ГГГГММДД в моем поле xml. Итак, как я могу это сделать
Я видел это в примере, это будет работать ??
Используя XSD, я хочу принимать только дату формата ГГГГММДД в моем поле xml. Итак, как я могу это сделать
Я видел это в примере, это будет работать ??
Схема 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
), но он маршалируется/демаршалируется с помощью вашей пользовательской процедуры.
type
для элемента, так и вложенный simpleType
. Используйте только: ‹xs:element name=BeginDate›‹xs:simpleType name=CustomDate›... и живите со строками.
- person Tomasz Nurkiewicz; 18.02.2011