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模式是「結構類型」,而不是「名義打字」 ...... –