11

xsd.exe ツールは、指定された xsd ファイルのクラスを生成します。型に名前を付けるためのパターンに従います。例えば、

<Students>
  <Student Name="A" RollNo="1" Address="Some Address">
    <Department Id="20" Name="CSE"/>
  </Student> 
</Students>

xsd.exe /c Students.xsd

Students.cs ファイルが生成されます。要素の型を見ると

Element     Type Name
Students    Students
Student     StudentsStudent
Department  StudentsStudentDepartment

要素が子の場合、親要素名のプレフィックスを付けて型を生成します。この名前を制御できますか? 要素名と同じ型名が必要です。学生=>学生、学科=>学科

前もって感謝します

4

1 に答える 1

22

一般に、xsd.exe を使用する場合、生成されたクラスの名前をカスタマイズすることはできません。カスタム JAXB バインディング ファイルを介した JAXB ユーザーなど、他の場所で利用可能なメカニズムとは異なります。

ただし、xsd.exe の場合、生成されるクラス名はオーサリング スタイルによって異なります。あなたが説明したものは、オーサリングスタイルが「ロシア人形」に準拠している場合、つまり次のように生成されます。

<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="Students">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Student">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Department">
                <xsd:complexType>
                  <xsd:attribute name="Id" type="xsd:unsignedByte" use="required" />
                  <xsd:attribute name="Name" type="xsd:string" use="required" />
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
            <xsd:attribute name="Name" type="xsd:string" use="required" />
            <xsd:attribute name="RollNo" type="xsd:unsignedByte" use="required" />
            <xsd:attribute name="Address" type="xsd:string" use="required" />
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

そのスタイルを別のものに変更した場合 (これはベネチアン ブラインドと呼ばれます):

<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="Students" type="Students"/>
    <xsd:complexType name="Students">
        <xsd:sequence>
            <xsd:element name="Student" type="Student"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="Student">
        <xsd:sequence>
            <xsd:element name="Department" type="Department"/>
        </xsd:sequence>
        <xsd:attribute name="Name" type="xsd:string" use="required"/>
        <xsd:attribute name="RollNo" type="xsd:unsignedByte" use="required"/>
        <xsd:attribute name="Address" type="xsd:string" use="required"/>
    </xsd:complexType>
    <xsd:complexType name="Department">
        <xsd:attribute name="Id" type="xsd:unsignedByte" use="required"/>
        <xsd:attribute name="Name" type="xsd:string" use="required"/>
    </xsd:complexType>
</xsd:schema>

これらのクラスが生成されます。

ここに画像の説明を入力

于 2013-02-13T16:19:02.327 に答える