从xsd读取数据并将其加载到sql server表的方法

时间:2012-09-21 08:48:47

标签: sql-server-2008 xsd

我需要在SQL Server数据库中加载一个表,并提供一些来自xsd的数据。

我有我的XSD,下面有一个块

<xsd:simpleType name="States">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="state1"/>
<xsd:enumeration value="state2"/>
<xsd:enumeration value="state3"/>
</xsd:restriction>
</xsd:simpleType>

在我的表 - 状态中,我有2列StateId,StateName。

我必须将state1,state2,..等数据加载到表的StateName列中。

有人可以建议我使用哪种方法来完成这项工作。

1 个答案:

答案 0 :(得分:2)

我会这样做:

DECLARE @xml XML
-- Add the schema information and make the XML a valid XML document to parse.
SELECT @xml = '<?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
        <xsd:simpleType name="Countries">
            <xsd:restriction base="xsd:string">
                <xsd:enumeration value="Country1"/>
                <xsd:enumeration value="Country2"/>
                <xsd:enumeration value="Country3"/>
            </xsd:restriction>
        </xsd:simpleType>
        <xsd:simpleType name="States">
            <xsd:restriction base="xsd:string">
                <xsd:enumeration value="state1"/>
                <xsd:enumeration value="state2"/>
                <xsd:enumeration value="state3"/>
            </xsd:restriction>
        </xsd:simpleType>
    </xsd:schema>';

WITH XMLNAMESPACES ('http://www.w3.org/2001/XMLSchema' as xsd)
SELECT 
    node.value('@value', 'nvarchar(32)')
FROM 
    @xml.nodes('/xsd:schema/xsd:simpleType[@name="States"]/xsd:restriction/xsd:enumeration') AS enum(node)