2013-10-04 74 views
0

嗨,我有一個Excel包含字段名稱和類型,如下面的示例。從MS Excel文件定義生成XSD文件

ID : INT 
First_Name : String 
Last_Name : String 
Phone number : String 

我想從描述中生成一個XSD。

有沒有一個工具呢?

回答

2
  1. 在記事本,寫你的新的模式是這樣的:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <record> 
        <ID>12345</ID> 
        <FirstName>First Name</FirstName> 
        <LastName>Last Name</LastName> 
        <PhoneNumber>555-555-5555</PhoneNumber> 
    </record> 
    <record> 
        <ID>12346</ID> 
        <FirstName>John</FirstName> 
        <LastName>Doe</LastName> 
        <PhoneNumber>555-555-5555</PhoneNumber> 
    </record> 
    </data-set> 
    
  2. 將文件保存爲schema.xml中

  3. 打開Excel文件。
  4. 在Developer選項卡上,打開XML Source任務窗格。
  5. 要添加XML地圖中,單擊XML映射

enter image description here

  • 單擊添加
  • schema.xml中選擇並單擊確定兩次
  • 現在只需從樹中拖動(映射)4個元素到工作表(第1行)。圖像顯示前兩個完成。
  • enter image description here

  • 在開發選項卡中,XML組下,單擊導出。
  • 將您的文件保存爲data-set.xml並按Enter鍵。
  • 結果會是這樣的:

    enter image description here

    +1

    偉大的答案,但上面不是XSD架構... –

    +0

    糟糕!感謝您指出了這一點。我應該刪除帖子嗎? –

    +0

    不知道 - 這是一個很好的答案,因爲我說過,也許會幫助OP。由你決定。 –

    1

    模型中類代碼:

    public class Something 
    { 
        public int ID { get; set; } 
        public string First_Name { get; set; } 
        public string Last_Name { get; set; } 
        public string Phone_number { get; set; } 
    } 
    

    保存到一個.cs文件,然後編譯。

    ,然後用XSD.EXE生成XSD:

    <?xml version="1.0" encoding="utf-8"?> 
    <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
        <xs:element name="Something" nillable="true" type="Something" /> 
        <xs:complexType name="Something"> 
        <xs:sequence> 
         <xs:element minOccurs="1" maxOccurs="1" name="ID" type="xs:int" /> 
         <xs:element minOccurs="0" maxOccurs="1" name="First_Name" type="xs:string" /> 
         <xs:element minOccurs="0" maxOccurs="1" name="Last_Name" type="xs:string" /> 
         <xs:element minOccurs="0" maxOccurs="1" name="Phone_number" type="xs:string" /> 
        </xs:sequence> 
        </xs:complexType> 
    </xs:schema>