そのため、繰り返しが多い .xsd ファイルがあります。
<xs:complexType name="Square">
<xs:sequence>
<xs:element name="Side1" type="xs:integer" minOccurs="1"/>
<xs:element name="Side2" type="xs:integer" minOccurs="1"/>
<xs:element name="Side3" type="xs:integer" minOccurs="1"/>
<xs:element name="Side4" type="xs:integer" minOccurs="1"/>
</xs:sequence>
<xs:attribute name="squarename" type="xs:string" use="optional" />
<xs:attribute name="squarenumber" type="xs:integer" use="optional" />
</xs:complexType>
<xs:complexType name="Rectangle">
<xs:sequence>
<xs:element name="Side1" type="xs:integer" minOccurs="1"/>
<xs:element name="Side2" type="xs:integer" minOccurs="1"/>
<xs:element name="Side3" type="xs:integer" minOccurs="1"/>
<xs:element name="Side4" type="xs:integer" minOccurs="1"/>
</xs:sequence>
<xs:attribute name="rectanglecolor" type="xs:string" use="optional" />
<xs:attribute name="rectanglelabel" type="xs:string" use="optional" />
</xs:complexType>
<xs:complexType name="Rhombus">
<xs:sequence>
<xs:element name="Side1" type="xs:integer" minOccurs="1"/>
<xs:element name="Side2" type="xs:integer" minOccurs="1"/>
<xs:element name="Side3" type="xs:integer" minOccurs="1"/>
<xs:element name="Side4" type="xs:integer" minOccurs="1"/>
</xs:sequence>
<xs:attribute name="rhombosdance" type="xs:string" use="optional" />
<xs:attribute name="rhombusname" type="xs:string" use="optional" />
</xs:complexType>
ご了承ください
<xs:sequence>
<xs:element name="Side1" type="xs:integer" minOccurs="1"/>
<xs:element name="Side2" type="xs:integer" minOccurs="1"/>
<xs:element name="Side3" type="xs:integer" minOccurs="1"/>
<xs:element name="Side4" type="xs:integer" minOccurs="1"/>
</xs:sequence>
多くの場所に現れます。
これはちょっと悪いようです。そのシーケンスのプレースホルダーまたは何かを持つ方法はありますか。これらすべてを備えた新しいタイプを作成しますが、下位互換性を維持する必要があるため、xsd が可能だったのと同じ xml を取得する必要があるため、たとえば、
<Square>
<Side1>1</Side1>
<Side2>1</Side2>
<Side3>1</Side3>
<Side3>1</Side3>
</Square>
の中へ
<Square>
<QuadSides>
<Side1>1</Side1>
<Side2>1</Side2>
<Side3>1</Side3>
<Side4>1</Side4>
<QuadSides>
</Square>
最初の xml を受け入れる必要があります。これを行う方法はありますか?