我試圖寫一個XML架構將驗證這一塊的xml:有兩個屬性和XML架構中的元素上的限制
<date isodate="2007-03-14">14 march 2007</date>
屬性isodate應該有它的類型設置爲XS :日期和內容應該是最多50個字符長。
我不知道是否有可能寫的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>
上面的代碼不工作,我真的不能找出原因。唯一的解決辦法我發現是限制部分突破到一個單獨的類型,鏈接,像這樣:
<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>
我的問題是怎麼寫的定義在一個塊中,這樣的模式是有點更具可讀性,並且不在模式的其他部分引用類型。
@Alexander:爲了正確格式化XML部分,突出顯示XML並單擊工具欄上的「代碼」按鈕(101 010)。這會讓你獲得良好的結果 - 使用反引號只能幫助一個單詞或一個短語 - 不會很好地跨越多條線。 – 2009-08-26 16:59:49