我正在使用包含抽象元素定义的XML架构,例如
<element name="AbstractX" type="some:Type" abstract="true"/>
在XmlSchemaSet
中加载此架构时,我可以在其GlobalElements
中找到此元素,并看到它将IsAbstract
属性设置为true
。到目前为止一切都很好。
但是,此元素也在类似
的类型中引用<complexType name="ReferencingX">
<complexContent>
<extension base="some:otherBaseType">
<sequence>
<element ref="some:AbstractX"/>
</sequence>
</extension>
</complexContent>
</complexType>
在解析的XmlSchemaSet中,当我通过复杂类型定义导航到元素时,IsAbstract
设置为false
。
是否有某些原因,或者它是System.Xml.Schema
中的错误?
(为了简洁起见,我简化了XSD,有问题的架构是AIXM)
答案 0 :(得分:1)
不,这不是一个错误。
您在代码中看到的是(抽象)元素的引用;引用不能标记为abstract(section 3.3.2 XML Schema Part 1,abstract仅在schema是元素的父级时才适用)。
您只需要:
这可以解决您的问题。