Я использую Excel для преобразования моих данных в XML. Одним из полей является дата. Моя проблема в том, что даты не соответствуют формату: ГГГГ или ГГГГ-ММ-ДД или даже иногда строковое значение текста и даты (например, «около 1920-х годов»).
Мне нужно решение для схемы, распознающей, что поле содержит либо значение даты, либо строковое значение.
Моя схема:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element nillable="true" name="metadata">
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element minOccurs="0" maxOccurs="unbounded" nillable="true" name="record" form="unqualified">
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element minOccurs="0" nillable="true" type="xsd:date" name="date" form="unqualified"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Пример даты:
Date
1921-06-01
1919
1921-06-01
1921
Я ходил взад и вперед, используя 'xsd: date' и 'xsd: string', но форматирование Excel не переводится. При сопоставлении схемы с полем поле даты предлагает пользователю выбрать либо текущее форматирование, либо соответствие форматированию элемента. В любом случае, YYYY и YYYY-MM-DD оба не отображаются, один всегда изменяется. Я хотел бы иметь оба. Мысли?
Спасибо.