XSD Дата или нет даты проверки - PullRequest
0 голосов
/ 10 июня 2010

Кажется, что следующее работает для формата MM-YYYY, но теперь у меня есть случай, когда он может быть пустым или иметь дату.Возможно ли это, или я должен нажать, чтобы включить атрибут в XML, только если есть дата, и сделать атрибут необязательным?

<xs:attribute name="edition_date" use="required">  
<xs:simpleType>  
   <xs:restriction base="AT_STR">  
     <xs:length value="7"/>   
     <xs:pattern value="(0[1-9]|1[012])[-](19|20)\d\d"/>   
   </xs:restriction>   
</xs:simpleType>   

Ответы [ 2 ]

2 голосов
/ 10 июня 2010

Включать атрибут в XML можно только в том случае, если есть дата, и делать атрибут необязательным

. Мне кажется, это правильный вариант

0 голосов
/ 11 июня 2010

Делать атрибут необязательным и включать атрибут в XML, только если есть дата, - хороший вариант, но в некоторых случаях вы можете не иметь контроля над генерацией XML.В этом случае вы можете попробовать следующий шаблон в XSD

<xs:simpleType name="edition_date">   
   <xs:restriction base="xs:string">   
      <xs:maxLength value="7"/>
      <xs:pattern value="((0[1-9]|1[012])[-](19|20)\d\d)?"/>    
   </xs:restriction>    
</xs:simpleType>    

. Этот шаблон аналогичен вашему, но использование?Оператор указывает, что шаблон может встречаться ноль или один раз, и поэтому допускает пустую строку.Также обратите внимание на использование xs: maxLength вместо xs: length.Не то, что бит необходим, потому что шаблон в любом случае допускает только фиксированную длину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...