目的: 私はSchema1.xsdという既存の標準XSDを使用しています。 Schema2.xsdのcomplexType( "TVDSection")でSchema1.xsdのcomplexType( "tElementWithIDAndName")を拡張したいとします。 ユニークなパーティクルアトリビューションエラー
私はAltovaのXMLSpyの/酸素XMLエディタでSchema2.xsdを検証しよう
が、私は次のエラーを取得しています:エラー: [Xercesの] COS-nonambig: "http://www.mySchema.com/Generic/1":要素1とWC [## other: "http://www.mybasic.com/1"、 ""](またはその置換グループの要素)は、 "Unique Particle Attribution"に違反します。このスキーマに対する検証中に、2つのパーティクルに対してあいまい性が作成されます。
Schema1.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.mybasic.com/1"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
targetNamespace="http://www.mybasic.com/1"
elementFormDefault="qualified"
version="0.1">
<xs:complexType name="tElementWithIDAndName">
<xs:sequence>
<xs:element name="additionalName" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
Schema2.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.mySchema.com/Generic/1"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:myBasic="http://www.mybasic.com/1"
targetNamespace="http://www.mySchema.com/Generic/1"
elementFormDefault="qualified" version="0.1">
<xs:import namespace="http://www.mybasic.com/1" schemaLocation="schema.xsd"/>
<xs:element name="Element1" type="TVDSection"/>
<xs:complexType name="TVDSection">
<xs:complexContent>
<xs:extension base="myBasic:tElementWithIDAndName">
<xs:sequence>
<xs:element name="element1" type="xs:string" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
私は、これはユニークな粒子の帰属に違反している場所/方法を知りません。 上記の問題を解決するのを手伝ってください。
残念ながら、別のチームからのプロジェクトの標準的なxsdであるため、私はschema1.xsdを変更できませんでした。また、私の既存のツールはXSD 1.1をサポートしていません。 この問題から何か考えてください。 – VinayCH
なぜschema1.xsdで複合型を拡張したいのですか?それは既にadditionalName要素の後にワイルドカードコンテンツを許可しています。なぜそれを変更する必要がありますか? –
「私の既存ツールはXSD 1.1をサポートしていません」に関しては、積極的に製品を開発して最新の標準に対応しているツールベンダーに切り替えるのはもちろんです。 –