我正在尝试编写一个将验证这个xml的xml模式:
原文链接:https://www.f2er.com/xml/293413.html<date isodate="2007-03-14">14 march 2007</date>@H_502_3@属性isodate应该将其类型设置为xs:date,内容最多为50个字符。 @H_502_3@我想知道是否可以在一个块中编写xml模式定义,这可能是:
<xs:element name="date" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:simpleContent> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="50"/> </xs:restriction> <xs:attribute name="isodate" type="xs:date" use="required"/> </xs:simpleContent> </xs:complexType> </xs:element>@H_502_3@上面的代码不起作用,我不知道为什么。我找到的解决方法是将限制部分分解成一个单独的类型,并链接如下:
<xs:simpleType name="reviewDate"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> <xs:element name="date" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:simpleContent> <xs:extension base="reviewDate"> <xs:attribute name="isodate" type="xs:date" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>@H_502_3@我的问题是如何在一个块中编写定义,以便模式更可读,并且不引用模式其他部分的类型。