我們在編寫正確(有效)xsd時發生了一些問題: - xsd應在http://www.w3.org/2001/03/webdata/xsv上驗證 - 應該可以添加我們需要在'xsd'中指定'標題'屬性值。這是一個(極其簡化的)XML結構。這是一個極其簡化的XML結構: 如何爲具有相同名稱但含有不同內容的元素編寫有效的xsd
1)這個w作爲我們的第一個版本(顯然是無效的):你不能有兩個名稱爲「input」的元素,其中與不同。
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="test">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="input">
<xsd:complexType>
<xsd:attribute name="title" fixed="Pretty title" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="input">
<xsd:complexType>
<xsd:attribute name="title" fixed="Different title" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
2)第二次嘗試:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="test" type="Test"/>
<xsd:complexType name="input1">
<xsd:attribute name="title" fixed="Pretty title" use="required"/>
</xsd:complexType>
<xsd:complexType name="input2">
<xsd:attribute name="title" fixed="Different title" use="required"/>
</xsd:complexType>
<xsd:complexType name="Test">
<xsd:sequence>
<xsd:element name="input" type="input1"/>
<xsd:element name="input" type="input2"/>
</xsd:sequence>
</xsd:complexType>
- w3.org想出瞭如前相同的錯誤消息:輸入:{無}的非法重新聲明
- xmlspy告訴我們這是一個有效的xsd
- sql server引發錯誤:類型'Test'的內容模型包含兩個具有相同名稱'input'和不同類型,nillability或值約束的元素。
如果有人能夠給我們一些見解,這將是很好的。
Manu。
ps:實際上,我們的XML結構比實例更復雜。我們正在構建一個Web表單生成器。 這裏還有一個(仍然簡單)例如:
<?xml version="1.0" encoding="UTF-8"?>
<ZForm title="main title" attachment="attachment1" type="NM08">
<Part title="part title">
<SubTitle code="I.1)" title="title 1"/>
<ShortText title="short text title 1"/>
<SubTitle code="I.2)" title="title 2" subtitle="subtitle 1"/>
<SelectList type="select type" title="select title"/>
<ShortText title="short text title 2"/>
<MultiSelectList type="multiType2" title="multi select title"/>
<RadioButtonList type="yesNo" title="lala"/>
<SubTitle code="I.3)" title="some other title" subtitle="what?"/>
<MultiSelectList type="multiType2" title=""/>
</Part>
<Part title="second part title">
<Repeater add="add a new repeater item" remove="remove last repeating part">
<RepeatingPart>
<SubTitle code="II.1)" title="tiiiiiitle"/>
<ShortText/>
</RepeatingPart>
</Repeater>
</Part>
</ZForm>
您是否嘗試過使用屬性組?你有多少個'input'聲明需要什麼? – 2011-03-22 08:55:37
據我所知,我們不能使用屬性組,因爲'fixed'屬性在兩種情況下都是不同的。 正因如此,這就是爲什麼_requirement_聲明2個不同的輸入元素。 – TweeZz 2011-03-22 09:51:36
因此,您可以使用兩個屬性組,但在您的輸入類型定義中,只需指定可以使用任一組但不能同時使用時間。我不確定我頭頂的語法,但我認爲這是可能的。? – 2011-03-23 04:46:25