私はスキーマファイルを解析しようとしていますが、誰かが助けてくれることを望んでいました。ここでXSDでXSDを解析する
は、XSDは、これは完全にはなく、アイデアを取得するのに十分ではありません
<xs:element name="E1">
<xs:complexType>
<xs:sequence>
<xs:element name="E2" nillable="true" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="E3" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="E4" nillable="true" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="E5" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="A1" type="xs:integer" use="optional" />
<xs:attribute name="A2" type="xs:string" use="optional" />
<xs:attribute name="A3" type="xs:string" use="optional" />\
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:complexType>
</xs:element>
</xs:complexType>
</xs:element>
のように見えるものです。ここでは、要素名を取得しようとしていたコードと、存在する場合は属性が続きますが、要素名のみが返されます。
var xs = XNamespace.Get("http://www.w3.org/2001/XMLSchema");
var doc = XDocument.Load(sourceName + sourceApi + "Input.txt");
foreach (var el in doc.Descendants(xs + "element"))
{
Trace.WriteLine("ANDY ------ " + el.Attribute("name").Value);
foreach (var attr in el.Elements(xs + "attribute"))
{
Trace.WriteLine(attr.Attribute("name").Value);
}
}
これは----- E4 アンディは--- ----- E1 アンディ----- E2 アンディはE3 アンディを-----
アンディをoutputingされます - E5
私は出力
アンディ----- E1 アンディ----- E2 アンディ----- E3 アンディ----- E4にそれをしたいですAndy ----- E5 A1 A2 A3
ありがとうございます。
ありがとう、ありがとう! – AndySousa