0

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>

生成されたコードにスキーマ要素に関する情報が含まれていないのはなぜですか? 生成されたクラスにこの情報を何らかの方法で保存できる他のツールはありますか?

4

1 に答える 1