我想擴展一個XML架構來改變一個元素下一個孩子可以發生的次數。我可以重新定義一個XSD架構來更改某個類型的子項的maxOccurs屬性嗎?
在原始模式,則父類型被定義爲這樣:
<xsd:complexType name="CrimeLineBusiness_Type">
<xsd:complexContent>
<xsd:extension base="PCLINEBUSINESS">
<xsd:sequence>
<xsd:element ref="CrimeSchedule" minOccurs="0"/>
<xsd:element ref="CrimeMoneyAndSecurities" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
我想使它所以無論CrimeSchedule
和CrimeMoneyAndSecurities
被重複元素。我想這可能工作(內部xsd:redefine
):
<xsd:complexType name="CrimeLineBusiness_Type">
<xsd:complexContent>
<xsd:extension base="CrimeLineBusiness_Type">
<xsd:sequence>
<xsd:element ref="CrimeMoneyAndSecurities" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="CrimeSchedule" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
然而,然後我得到了以下錯誤:
cos-nonambig: CrimeSchedule and CrimeSchedule (or elements from their substitution group) violate "Unique Particle Attribution". During validation against this schema, ambiguity would be created for those two particles.
這是有道理的,因爲這些孩子們在原來的架構確實定義。那麼,我該如何完成我需要做的事情呢?
謝謝!
很好的解釋和解決方案喬治!在看到關於XSD被投票並被提問者接受的幾個不正確答案後,我開始對SO失去信心。 – 13ren 2009-06-10 05:11:47