У меня есть тип 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?