【发布时间】:2011-03-19 15:53:39
【问题描述】:
我有一个 xml 类型,USAddress,在架构中定义:
<xsd:element name="MyUSAddress" type="USAddress"/>
<xsd:complexType name="USAddress">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string">
<xsd:annotation>
<xsd:appinfo>Special Metadata</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string">
<xsd:annotation>
<xsd:appinfo>Special Metadata</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="zip" type="xsd:decimal"/>
</xsd:sequence>
</xsd:complexType>
以及数据实例文档中的一个 XML 元素:
<MyUSAddress>
<name>Robert Smith</name>
<street>8 Oak Avenue</street>
<city>Old Town</city>
<state>PA</state>
<zip>95819</zip>
</MyUSAddress>
此架构和实例数据在编译时是未知的,因此所有分析都是动态完成的。此模式的简单性仅用于示例目的。真正的模式会更复杂。
假设我已将架构加载到 System.Xml.Schema.XmlSchema 中,当我访问实例 xml 文档中的每个节点时,如何获取关联的架构元素并读取其 appinfo 注释?
【问题讨论】: