この記事の内容はすべて理解できたと思いますが、まだ作業が残っているようです。
クラスに単純な継承ツリーがある場合:
A (abstract)
^
B
^
C
そして、次のように xml にオブジェクトの単純なリストが必要です。
<mylist>
<B>lalala</B>
<C>fofofo</C>
<C>fofofo</C>
<C>fofofo</C>
<C>fofofo</C>
<B>lalala</B>
</mylist>
このスキームを以下に対して検証しようとすると、うまくいかないようです:
<xs:schema>
<xs:complexType name="A" abstract="true">
<xs:element name="text" type="xs:string"/>
</xs:complexType>
<xs:complexType name="B">
<xs:complexContent>
<xs:extension base="A"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="C">
<xs:complexContent>
<xs:extension base="B"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="mylist>
<xs:sequence maxOccurs="unbounded">
<xs:element name="A" type="A"/>
</xs:sequence>
</xs:element>
</xs:schema>
これは、多くの名前空間を持たない短い xml のための単なる疑似コードであることを忘れないでください。
バリデーターが (たとえば、notepad++) に、または
<A>
ではなく、まだ期待していることを通知するのはなぜですか?<B>
<C>