2
這是我的客戶端提供的XML文件的要點。文件被命名爲Rep [yr] [mo]。我嘗試使用Visual Studio生成的模式將數據上載到我的數據庫中,但它一直告訴我某些節點缺少引用,無論我做了什麼。有什麼建議?將多個XML文件導入到遠程SQL Server表中
<xml>
<reports>
<report name="Report 1">
<client id="Client 1">
<stat stat_id="client_stats">
<monthStats>0</monthStats>
<yearStats>0</yearStats>
</stat >
</client>
<client id="Client 2">
<stat stat_id="client_stats">
<monthStats>0</monthStats>
<yearStats>0</yearStats>
</stat >
</client>
</report>
<report name="Report 2">
<client id="Client 1">
<stat stat_id="client_stats">
<monthStats>0</monthStats>
<yearStats>0</yearStats>
</stat >
</client>
<client id="Client 2">
<stat stat_id="client_stats">
<monthStats>0</monthStats>
<yearStats>0</yearStats>
</stat >
</client>
</report>
</reports>
</xml>
下面是生成的模式:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<xs:element name="xml">
<xs:complexType>
<xs:sequence>
<xs:element name="reports" sql:is-constant="true">
<xs:complexType>
<xs:sequence>
<xs:element name="report" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="client" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="stat" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="monthStats" type="xs:decimal" minOccurs="0" sql:field="monthStats"/>
<xs:element name="yearStats" type="xs:decimal" minOccurs="0" sql:field="yearStats"/>
</xs:sequence>
<xs:attribute name="stat_id" type="xs:string" use="optional" sql:field="stat_id"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedShort" use="optional" sql:field="clientID"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="optional" sql:field="reportName"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
而且我想這個VBS導入:
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad.4.0")
objBL.ConnectionString = "Provider=SQLOLEDB; Data Source=[source];Initial Catalog=[database];User ID='[id]';Password='[pw]'"
objBL.ErrorLogFile = "[path]"
objBL.Execute "[the xsd]", "[xml file]"
Set objBL = Nothing
Dim strPathToSchema As String = "c:\path\FileName.xsd"
Dim strPathToData As String = "c:\path\FileName.xml"
Dim dtXMLData As New DataTable()
dtXMLData.ReadXMLSchema(strPathToSchema)
dtXMLData.ReadXML(strPathToData)
但我得到的錯誤:架構:關係預期'報告'
客戶的最初目標是將一切都放在一張巨大的桌子上,但如果您有任何身份證件爲了更好的結構化,它將非常感謝!