2015-07-22 66 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的,然后通过了,但如果你是完全新的这个主题;-)