【问题标题】:Create XSD for defined XML and Table为定义的 XML 和表创建 XSD
【发布时间】:2015-10-11 21:28:47
【问题描述】:

我想为使用 XML 文件的 sql-server 数据库构建一个导入接口。现在我陷入了创建 XSD 文件以确保正确的 input-xml 的问题。

假设我有一张这样的桌子:

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)。

【问题讨论】:

    标签: sql-server xml xsd schema xmltable


    【解决方案1】:
      SELECT * FROM [accounts] FOR XML PATH('account'), ROOT('accounts')
    

    【讨论】:

    • 这显示了表中的 XML 数据 --> 但我需要的是 XSD,而不是 xml。
    • 您可以将 SELECT TOP(1) * FROM [Accounts] FOR XML AUTO、XMLSCHEMA ('MyURI') 生成的 XSD 架构与您在上面选择的需要构建的 xml 相结合。
    • 您可以在此处从 XML 生成 XSD - xmlgrid.net/xml2xsd.html,然后使用 MS SQL 生成的 XSD 中提供的信息描述类型和用途。希望对你有帮助。
    【解决方案2】:

    使用 XSD.exe 找到了解决方案 - 刚刚创建了一个 XSD 然后采用了它,但如果您对这个主题完全陌生,这将是一项艰巨的工作 ;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多