2
我與XSD工作,如:使用XSD中的屬性限制complexType?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="algo">
<xs:complexType>
<xs:sequence>
<xs:element name="nota" type="t_algo" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="t_algo">
<xs:restriction base="xs:string">
<xs:pattern value="[1][0]|[0-9]" />
</xs:restriction>
<xs:attribute name="modul" type="t_modul"/>
</xs:complexType>
<xs:simpleType name="t_modul">
<xs:restriction base="xs:string">
<xs:pattern value="[m][0][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
,並使用測試這樣的XML:
<?xml version="1.0" encoding="UTF-8"?>
<algo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:///D:/DAM/RECUF1/Mispruebas/telf.xsd">
<nota modul="m01">0</nota>
<nota modul="m01">7</nota>
<nota modul="m01">3</nota>
<nota modul="m01">1</nota>
</algo>
我想要孩子nota
與值0-10之間以及與屬性(0-9)之間的值modul
,其值爲m0X
,其中x
。我認爲以前的XSD可以工作,但事實並非如此。有人可以解釋我做錯了什麼嗎?
您爲't_modul'簡單類型指定的模式適用於標籤內包含的值,而不是該屬性的名稱。我相信該屬性的名稱是固定的,您可能必須爲您所期望的各種類型的屬性名稱定義標籤。 –
不要告訴我們有什麼不行的。告訴我們它是如何失敗的。 –