2
直感的に、「拡張」は、基本タイプを変更するのではなく、基本タイプに何かを追加することを意味します。次のXSDXMLスキーマ拡張のセマンティクス
<complexType name="B">
<attribute name="A1" type="int" use="required" />
<anyAttribute namespace="##other" processContents="strict" />
</complexType>
<complexType name="D">
<complexContent >
<extension base="tns:B">
<!--???-->
<attribute name="A1" type="int" use="optional" />
<anyAttribute namespace="##other" processContents="lax" />
</extension>
</complexContent>
</complexType>
コンパイルしないでください。しかし、XML Schemaコンパイラ(System.Xml.Schema.XmlSchema)はエラーを投げません。このカウンター直感的デザインの合理性は何ですか?スキーマに問題があります
私はその理由を知っています:XMLスキーマは「構造型」であり、「名目型」ではありません...... –