【发布时间】:2016-03-06 02:08:32
【问题描述】:
我不知道如何理解以下语法:
public string[] AuthorReferenceID
{
get { return this.AuthorReference.Select(auth => auth.@ref).ToArray(); }
}
这是由 Xsd2 Code Generator 从 XML Schema 生成的文件 Bookstore.cs 的一部分。上面的代码已添加到生成的文件中。已创建整个应用程序以显示 XML 文件的内容。
XSD 文档(没有前 3 行)如下所示:
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Surname" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" />
</xs:complexType><xs:complexType name="PersonReference">
<xs:attribute name="ref" type="xs:string" />
</xs:complexType>
<xs:complexType name="Publication">
<xs:sequence>
<xs:element name="AuthorReference" minOccurs="1" maxOccurs="unbounded" type="b:PersonReference" />
</xs:sequence>
<xs:attribute name="title" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="Book">
<xs:complexContent>
<xs:extension base="b:Publication">
<xs:attribute name="price" type="b:positiveDecimal" use="required" />
<xs:attribute name="category" type="b:itemCategory" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="positiveDecimal">
<xs:restriction base="xs:decimal">
<xs:minExclusive value="0" />
<xs:fractionDigits value="2" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="itemCategory">
<xs:restriction base="xs:string">
<xs:enumeration value="ITC" />
<xs:enumeration value="Mathemath" />
</xs:restriction>
</xs:simpleType>
<xs:element name="Bookstore">
<xs:complexType>
<xs:sequence>
<xs:element name="Books">
<xs:complexType>
<xs:sequence>
<xs:element name="Book" minOccurs="0" maxOccurs="unbounded" type="b:Book" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Journals">
<xs:complexType>
<xs:sequence>
<xs:element name="Journal" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Article" type="b:Publication" />
<xs:element name="EditorReference" minOccurs="1" maxOccurs="unbounded" type="b:PersonReference" />
</xs:sequence>
<xs:attribute name="price" type="b:positiveDecimal" use="required" />
<xs:attribute name="category" type="b:itemCategory" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element name="Person" type="b:Person" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:key name="PERSON_ID">
<xs:selector xpath="b:People/b:Person" />
<xs:field xpath="@id" />
</xs:key>
<xs:keyref name="ATHBK_PERSON_ID" refer="b:PERSON_ID">
<xs:selector xpath="b:Books/b:Book/b:AuthorReference" />
<xs:field xpath="@ref" />
</xs:keyref>
<xs:keyref name="ATHART_PERSON_ID" refer="b:PERSON_ID">
<xs:selector xpath="b:Journals/b:Journal/b:Article/b:AuthorReference" />
<xs:field xpath="@ref" />
</xs:keyref>
<xs:keyref name="EDITJRL_PERSON_ID" refer="b:PERSON_ID">
<xs:selector xpath="b:Journals/b:Journal/b:EditorReference" />
<xs:field xpath="@ref" />
</xs:keyref>
</xs:element>
</xs:schema>
【问题讨论】:
-
您能否编辑您的问题以包含属性“AuthorReference”(我假设它是一个类的列表或数组),以及(如果可以的话)AuthorReference 是其集合的类?
-
“不懂”是什么意思?您是否难以理解这应该返回什么、
=>符号或其他什么?这是一个非常简单的 LINQ 调用,因此不清楚您在哪里遇到了问题。