【发布时间】:2019-06-27 19:57:24
【问题描述】:
考虑以下来自 XSD 的 sn-p:
<xs:complexType name="AccountIdentification4ChoiceGPS">
<xs:choice>
<xs:element name="IBAN" type="IBAN2007Identifier">
<xs:annotation>
<xs:appinfo>
<xs:logicalname>IBAN</xs:logicalname>
<xs:additionalInfo>[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}</xs:additionalInfo>
<xs:ISOType>(CashAccount20)</xs:ISOType>
</xs:appinfo>
<xs:documentation>Unambiguous identification of the account as International Bank Account Number (IBAN).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Othr" type="GenericAccountIdentification1GPS">
<xs:annotation>
<xs:appinfo>
<xs:logicalname>Other</xs:logicalname>
<xs:ISOType>(CashAccount20)</xs:ISOType>
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
使用 LINQ:如果我知道 element name="IBAN" 我如何检索元素 <xs:complexType name="AccountIdentification4ChoiceGPS">
如果我不太了解我的 XSD 的内容。`?我可能知道的唯一想法是 LocalName 是“complexType”;
我在想:
IEnumerable<XElement> elementAbove = xsdDocument.Descendants()
.Where(x=>x.Name.LocalName == "complexType")
.Select(Get here the value of the element that could be the parent or the parent's parent).
这就是我卡住的地方。
【问题讨论】:
标签: c# linq-to-xml xelement xattribute linq-to-xsd