2015-07-22 42 views
1

我想爲使用XML文件的sql-server數據庫構建一個導入界面。現在我被困在創建一個XSD文件以確保正確的input-xml。爲定義的XML創建XSD和表

比方說,我有一個這樣的表:

table: accounts 
colummns: account_id INT NOT NULL 
      name VARCHAR(20) NOT NULL 
      type CHAR(1) NOT NULL 
      desc VARCHAR(100) 

和XML文件應該是這樣的:

<accounts> 
    <account> 
     <account_id>1</account_id> 
     <name>account A</name> 
     <type>B</type> 
    </account> 
    <account> 
     <account_id>2</account_id> 
     <name>account B</name> 
     <type>D</type> 
     <desc>some text here</desc> 
    </account> 
</accounts> 

這是我第一次設計這樣的事情,我沒有使用xsd文件的經驗... 我嘗試了幾個東西,如SELECT .. FOR XML AUTO, XMLSCHEMA和XSD.exe,但沒有給我什麼我想要的。

我想在XSD中映射SQL-Server表的類型 - 例如可爲空/不可空和字符串的長度。甚至應該聲明一系列有效值(例如,type只能是A,B,C或D)。

回答

1
SELECT * FROM [accounts] FOR XML PATH('account'), ROOT('accounts') 
+0

這說明從XML數據很難工作表 - >但我需要的是XSD,而不是XML。 – CeOnSql

+0

您可以將SELECT TOP(1)* FROM [Accounts] FOR XML AUTO,XMLSCHEMA('MyURI')生成的XSD模式與您在上面選擇的需求結構化的xml相結合。 –

+0

您可以在這裏生成XSD - http://xmlgrid.net/xml2xsd.html,然後通過使用MS SQL生成的XSD中提供的信息來描述類型和使用。希望它可以幫助你。 –

0

發現XSD.EXE的解決方案 - 剛剛創建的XSD的,然後通過了,但如果你是完全新的這個主題;-)