は、次のXMLスキーマを考えてみましょう:xsdのエラーメッセージ: "派生型のコンテンツタイプとそのベースのコンテンツタイプが混在しているか、両方が要素のみである必要があります。"
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified"
vc:minVersion="1.0" vc:maxVersion="1.1">
<xs:element name="zoo">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="zootier" type="tier" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="tier">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="alter" type="xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
</xs:complexType>
<xs:complexType name="säugetier_ct">
<xs:complexContent>
<xs:extension base="tier">
<xs:sequence>
<xs:element name="tragezeit" type="xs:positiveInteger"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="pferd_ct">
<xs:complexContent>
<xs:extension base="tier">
<xs:attribute name="schimmel" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="katze_ct">
<xs:complexContent>
<xs:sequence>
<xs:element name="fellfarbe" type="xs:string"/>
</xs:sequence>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="vogel_ct">
<xs:complexContent>
<xs:extension base="tier">
<xs:attribute name="flugfaehig" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="gans_ct">
<xs:complexContent>
<xs:extension base="tier">
<xs:sequence>
<xs:element name="schlachtgewicht" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="fink_ct">
<xs:complexContent>
<xs:sequence>
<xs:element name="beringt" type="xs:boolean"/>
</xs:sequence>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="pfleger">
<xs:sequence>
<xs:element name="pflegt" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="tier" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="behausung_ct">
<xs:attribute name="name" type="xs:string"/>
<xs:sequence>
<xs:element name="zootier" type="tier" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gebäude_ct">
<xs:complexContent>
<xs:extension base="behausung_ct">
<xs:sequence>
<xs:element name="flaeche" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="teich_ct">
<xs:complexContent>
<xs:extension base="behausung_ct">
<xs:sequence>
<xs:element name="wassertiefe" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
これは私に次のエラーメッセージが得られます。
Error1: The content of 'katze_ct' is invalid. Element 'sequence' is invalid, misplaced, or occurs too often.
Error2: The content of 'fink_ct' is invalid. Element 'sequence' is invalid, misplaced, or occurs too often.
Error3: The content of 'behausung_ct' is invalid. Element 'sequence' is invalid, misplaced, or occurs too often.
Error 4: The content type of a derived type and that of its base must both be mixed or both be element-only. Type 'gebäude_ct' is element only, but its base type is not.
Error 5: The content type of a derived type and that of its base must both be mixed or both be element-only. Type 'teich_ct' is element only, but its base type is not.
エラー1-3を同じタイプのものです。エラー4と5も同じタイプです。 エラーに関して4 + 5:派生型が親型と同じ種類のコンテンツを持つ必要があるのはなぜですか?これはxmlスキーマのルールの一部にすることはできません...それは無意味です。拡張されたクラスが親クラス(要素と属性からなる)と比較して1つの追加要素しか持たない場合はどうでしょうか? 2つのクラスを似たようにするために、派生クラスの属性をいくつか作成する必要がありますか?
私のコードで何が間違っているのか分かりません。
ありがとうございます。今、検証中です。 – Tommy