私の質問を読んで誰もがまたthisスレッドを読みたいと思うかもしれません(by Damien)。私の答えはまったく正しいとは思われないようです:パーザ/バリデータは、同じ方法での属性宣言をベース/派生要素で処理しません。 W3CのXML Schema仕様のpart 1に延び複合型、section 3.4.6のサブセクション1.4.3.2.2.1に関する
は言う
両方【由来と基地] {コンテンツ・タイプ} Sなければならないこと混合されるか、両方とも要素のみでなければなりません。
はい、継承されています(上書きすることはできません)。
基本的に、あなたが説明したことは、最も論理的な動作であることが望ましい(と私が心配している限り)ことです。
シンプルなスキーマを作成して、EclipseのXMLツールで少しテストを実行しました。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="c">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="a"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="a" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="b"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
上記のスキーマは、のEclipseのもW3Cの「公式」XML Schemaのバリデータはそれで問題に気づいていないという意味で、有効です。
次のXMLは、上記のスキーマに対して検証を行います。
<?xml version="1.0" encoding="UTF-8"?>
<c xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test.xsd">
x
<b/>
y
</c>
だから、基本的には、複雑な基本型の混合度を上書きすることはできません。この声明をさらに支持するために、基本的なタイプと控えめなタイプの混合性を交換してみてください。その場合、XMLは検証されません。派生型は混在しないため、ベースの混在を上書きできないためです。
はまた、他の人がそれはパーサは、あなたが話している明確にするために傷つけることができませんでしたではない
を行いながら
一部のパーサは、要素に直接PCDATAが許可されていることを言いました。 良いパーサーは混在したコンテンツに遭遇したときに失敗しません。適切なスキーマが与えられていると、検証中のパーサーは、スキーマがそれを許可していないときに混合コンテンツを検出すると失敗します。
質問はW3Cメーリングリストで質問されています:http://lists.w3.org/Archives/Public/xmlschema-dev/2005Sep/0018.html – Damien