none
如何使用SQL XML4.0将含有西里尔文的XML文件导入到SQL Server 表中? RRS feed

  • 问题


  • 大家好,

    我们怎么使用SQL XML4.0 将含有西里尔文的XML 文件导入到SQL Sever 中表呢?


    谢谢

    2011年4月26日 5:55
    版主

答案

  • 大家好,

    MSXML 默认支持以下编码格式:

    UTF-8
    UTF-16
    UCS-2
    UCS-4
    ISO-10646-UCS-2
    UNICODE-1-1-UTF-8
    UNICODE-2-0-UTF-16
    UNICODE-2-0-UTF-8

    它也支持其他编码格式,如 ISO-8859-1, WINDOWS-1252等等。

    如果在XML 文件里含有西里尔文,我们需要为西里尔文指定一个有效的编码格式,请参阅下面的XML 文件:

     <?xml version="1.0" encoding=" WINDOWS -1252"?>
    <ROOT>
     <Customers>
      <CustomerID>1112</CustomerID>
      <CompanyName> æøå êèé</CompanyName>
      <City>Los Angeles</City>
     </Customers>
    </ROOT>
    
    

    现在我们可以使用SQLXML4.0 将XML 文件导入SQL Server 的表中,请参阅下面的步骤:

    1. 创建存储数据的表

    CREATE TABLE Cust
    (
     CustomerID INT PRIMARY KEY,
     CompanyName VARCHAR(20),
     City    VARCHAR(20)
    )
    GO
    


    2. 创建XSD架构

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
      <xsd:element name="ROOT" sql:is-constant="1" >
       <xsd:complexType>
        <xsd:sequence>
         <xsd:element name="Customers" sql:relation="Cust" maxOccurs="unbounded">
          <xsd:complexType>
           <xsd:sequence>
            <xsd:element name="CustomerID" type="xsd:integer" />
            <xsd:element name="CompanyName" type="xsd:string" />
            <xsd:element name="City"    type="xsd:string" />
           </xsd:sequence>
          </xsd:complexType>
         </xsd:element>
        </xsd:sequence>
       </xsd:complexType>
       </xsd:element>
    </xsd:schema>
    

    3. 根据下面示例,执行批量导入的编码,结果为:

     

    相关文档,请参阅:
    XML 大容量加载示例 (SQLXML 4.0)
    http://msdn.microsoft.com/zh-cn/library/ms171806.aspx

     

    谢谢。

    2011年4月26日 6:03
    版主