У меня есть несколько документов XML, которые я не могу контролировать.Их структура четко определена, но она описана в нескольких PDF-файлах, которые, несмотря на то, что они очень точные, не делают автоматизированную проверку очень удобной.Я пытаюсь написать XML-схему, чтобы сделать (большинство) правил в этих PDF-файлах исполняемыми.
Все элементы являются обязательными.Но около половины из них могут быть либо пустыми, либо иметь типизированное содержимое.
При определении типов данных для этих элементов я определил две версии каждого: «нормальный» и другой, который может быть пустым.Я сделал это, определив союзы с типом empty
:
<xs:simpleType name="empty">
<xs:restriction base="xs:string">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="codPostal">
<xs:restriction base="xs:string">
<xs:pattern value="^[0-9]{4}-[0-9]{3}$"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="opt_codPostal">
<xs:union memberTypes="empty codPostal"/>
</xs:simpleType>
Есть ли менее повторяющийся способ сделать это?