繁体   English   中英

从XSD生成C#类-忽略架构元素

[英]Generating C# classes from XSD - schema elements are ignored

我使用xsd.exe或Xsd2Code为此XSD架构生成C#类:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="student" type="personinfo"/>
  <xs:element name="employee" type="personinfo"/>

  <xs:complexType name="personinfo">
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

</xs:schema>

在这两种情况下,我都得到类似的结果:

...
[System.Xml.Serialization.XmlRootAttribute("student", Namespace="", IsNullable=false)]
public partial class personinfo 
{
    ...
    public string firstname { ... }
    public string lastname { ... }
}

对我来说,奇怪的是,没有在任何地方引用employee并且在代码生成后丢失了一些信息。 例如,如果我查看生成的代码,则可以创建此XML并不明显:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

为什么有关架构元素的信息未包含在生成的代码中? 是否有其他工具可以某种方式将这些信息保存在生成​​的类中?

在您实际使用它们之前,它们将保持未引用状态。 尝试这样的事情:

<xs:complexType name="PersonInfo">
<xs:sequence>
<xs:element name="student" type="personinfo"/>
<xs:element name="employee" type="personinfo"/>
</xs:sequence>
</xs:complexType>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM