Я видел элемент XML-схемы с атрибутами, содержащими только текст , но вместо этого у меня есть элемент xs: dateTime.
Документ, для которого я пытаюсь написать схему, выглядит следующим образом:
<web-campaigns>
<web-campaign>
<id>1231</id>
<start-at nil="true"/>
</web-campaign>
<web-campaign>
<id>1232</id>
<start-at>2009-08-08T09:00:00Z</start-at>
</web-campaign>
</web-campaigns>
Иногда элемент xs: dateTime имеет содержимое, иногда - нет.
То, что у меня есть (что еще не проверено):
<xs:element name="start-at">
<xs:complexType mixed="true">
<xs:simpleContent>
<xs:extension base="xs:dateTime">
<xs:attribute name="nil" default="false" type="xs:boolean" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Если я заменим xs: dateTime на xs: string, я смогу проверить документ очень хорошо, но я действительно хочу xs: dateTime, чтобы указать потребителям, что находится в этом элементе. Я пробовал с / без mixed = "true" , но безрезультатно.
Если это имеет значение, я проверяю, используя xmllint (в Mac OS X 10.5) и Валидатор XML-схемы