2013-02-13 11 views
7

xsd.exeツールは、特定のxsdファイルのクラスを生成します。型の命名パターンに従います。例えば 、xsd.exeツールでタイプ名を制御することができますか?

<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 

要素が子の場合は、親要素名の前にプレフィックスを付けることによって型を生成します。 この名前を管理できますか?要素名と同じ型名が必要です。一般的には、予め

答えて

16

で 学生=>学生、学部=>部門

おかげXsd.exeではを使用した場合、1が生成されたクラスの名前をカスタマイズすることはできません - 他の場所で利用可能なメカニズムとは異なり、例えばのためにカスタム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> 

あなたは生成され、これらのクラスを取得することがあります:

enter image description here

関連する問題