2013-02-13 81 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時自定義生成的類的名稱 - 不同於現有的機制在其他地方,例如爲一個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

相關問題