Forums Neueste Beiträge
 

Import XML in SQL Schemamapping?

06/05/2008 - 17:42 von Gregor | Report spam
Hallo Zusammen

Ich habe eine XML Datei welche ich importieren möchte in SQL Server 2005.
Insert.vbs habe ich gemacht. Aber beim Schemamapping habe ich probleme

Ich möchte Folder und Used importieren in DB

Wie muss ich die dritte Stufe ansprechen

1. StorageReport
2. ReportData
3. Item

Wie muss ich die XMLMapping.xml anpassen?

Kann mir jemand einen Tipp geben.

Besten Dank

Gregor


== insert.vbs
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data
source=(local);database=Quota;integrated
security=SSPI;Trusted_Connection=Yes"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "C:\StorageReports\XMLMapping.xml",
"C:\StorageReports\Interactive\Kontingentbedarf3_2008-05-05_20-18-51.xml"
Set objBL = Nothing


== XMLMapping.xml
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql" >


<ElementType name="Folder" dt:type="string" />
<ElementType name="Used" dt:type="string" />

<ElementType name="StorageReport" sql:is-constant="1">

<element type="Item" />
</ElementType>

<ElementType name="Item" sql:relation="Item">
<element type="Folder" sql:field="Folder" />
<element type="Used" sql:field="Used" />
</ElementType>

</Schema>


== Datei.xml
<?xml version="1.0" ?>
- <StorageReport version="1.0">
- <ReportHeader ReportTitle="Kontingentbedarfsbericht"
GeneratedAt="05.05.2008 20:18:51" MachineName="SRVDEPLOY"
ReportTypeDescription="Führt die Kontingente auf, die eine bestimmte
Datentràgerspeichernutzung übersteigen. Diesen Bericht können Sie verwenden,
um schnell Kontingente zu bestimmen, die in nàchster Zeit ausgeschöpft sein
könnten, so dass Sie eine entsprechende Aktion ausführen können."
ReportDescription="" TimestampRenderingPhaseStart="05.05.2008 20:18:53"
TimestampGenerationEnding="05.05.2008 20:18:53" MaxDisplayItems="1000"
Type="QuotaUsage" FilesCount="2" IsStandardFileList="False">
- <ReportNamespaces>
<Namespace ID="0">E:\Users</Namespace>
</ReportNamespaces>
- <ReportFilters>
<Filter Name="Verwendetes minimales Kontingent in Prozent" Value="0%" />
</ReportFilters>
<ReportWarnings />
</ReportHeader>
- <ReportData>
- <Item>
<Folder>e:\users\Test001</Folder>
<FolderURL>\\SRVDEPLOY\e$\users\Test001</FolderURL>
- <RemotePath>
<Path>\\SRVDEPLOY\Users$\Test001</Path>
</RemotePath>
<Owner>VORDEFINIERT\Administratoren</Owner>
<Limit>262144000</Limit>
<Used>209688576</Used>
<PercentUsed>79.99</PercentUsed>
<HighwaterMark>209688576</HighwaterMark>
<HighwaterTime>23.01.2008 18:30:56</HighwaterTime>
<QuotaTag />
</Item>
- <Item>
<Folder>e:\users\Test002</Folder>
<FolderURL>\\SRVDEPLOY\e$\users\Test002</FolderURL>
- <RemotePath>
<Path>\\SRVDEPLOY\Users$\Test002</Path>
</RemotePath>
<Owner>VORDEFINIERT\Administratoren</Owner>
<Limit>209715200</Limit>
 

Lesen sie die antworten

#1 Wolfgang Viehmann
15/05/2008 - 15:04 | Warnen spam
Hallo Gregor,

meiner Meinung nach müßte das Schema so aussehen:

== XMLMapping.xml
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql" >

<ElementType name="StorageReport" sql:is-constant="1">
<ElementType name="ReportData" sql:is-constant="1">
<ElementType name="Item" sql:relation="Item">
<element type="Folder" sql:field="Folder" />
<element type="Used" sql:field="Used" />
</ElementType>
</ElementType>
</ElementType>


</Schema>


Dein XML-Beispiel ist nicht korrekt, was wohl daran liegt, dass du es
ausgeschnitten hast.
Deine echten Daten sollten die schließenden Tags enthalten und die
Minus-Zeichen müssen raus.

Problem könnten auch noch die Sonderzeichen machen. Ich empfehle dir den
folgenden Link:

http://www.w3schools.com/XML/xml_encoding.asp

Übrigens wenn du ein Schema erstellen willst schau dir eine Beispiel-XML mit
dem XML Notepad an und erstell danach dein Schema. Hier der Link:

http://www.microsoft.com/downloads/...layLang=en


Wolfgang Viehmann
(Wolle)


"Gregor" wrote in message
news:
Hallo Zusammen

Ich habe eine XML Datei welche ich importieren möchte in SQL Server 2005.
Insert.vbs habe ich gemacht. Aber beim Schemamapping habe ich probleme

Ich möchte Folder und Used importieren in DB

Wie muss ich die dritte Stufe ansprechen

1. StorageReport
2. ReportData
3. Item

Wie muss ich die XMLMapping.xml anpassen?

Kann mir jemand einen Tipp geben.

Besten Dank

Gregor


== insert.vbs
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data
source=(local);database=Quota;integrated
security=SSPI;Trusted_Connection=Yes"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "C:\StorageReports\XMLMapping.xml",
"C:\StorageReports\Interactive\Kontingentbedarf3_2008-05-05_20-18-51.xml"
Set objBL = Nothing


== XMLMapping.xml
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql" >


<ElementType name="Folder" dt:type="string" />
<ElementType name="Used" dt:type="string" />

<ElementType name="StorageReport" sql:is-constant="1">

<element type="Item" />
</ElementType>

<ElementType name="Item" sql:relation="Item">
<element type="Folder" sql:field="Folder" />
<element type="Used" sql:field="Used" />
</ElementType>

</Schema>


== Datei.xml
<?xml version="1.0" ?>
- <StorageReport version="1.0">
- <ReportHeader ReportTitle="Kontingentbedarfsbericht"
GeneratedAt="05.05.2008 20:18:51" MachineName="SRVDEPLOY"
ReportTypeDescription="Führt die Kontingente auf, die eine bestimmte
Datentràgerspeichernutzung übersteigen. Diesen Bericht können Sie
verwenden, um schnell Kontingente zu bestimmen, die in nàchster Zeit
ausgeschöpft sein könnten, so dass Sie eine entsprechende Aktion ausführen
können." ReportDescription="" TimestampRenderingPhaseStart="05.05.2008
20:18:53" TimestampGenerationEnding="05.05.2008 20:18:53"
MaxDisplayItems="1000" Type="QuotaUsage" FilesCount="2"
IsStandardFileList="False">
- <ReportNamespaces>
<Namespace ID="0">E:\Users</Namespace>
</ReportNamespaces>
- <ReportFilters>
<Filter Name="Verwendetes minimales Kontingent in Prozent" Value="0%" />
</ReportFilters>
<ReportWarnings />
</ReportHeader>
- <ReportData>
- <Item>
<Folder>e:\users\Test001</Folder>
<FolderURL>\\SRVDEPLOY\e$\users\Test001</FolderURL>
- <RemotePath>
<Path>\\SRVDEPLOY\Users$\Test001</Path>
</RemotePath>
<Owner>VORDEFINIERT\Administratoren</Owner>
<Limit>262144000</Limit>
<Used>209688576</Used>
<PercentUsed>79.99</PercentUsed>
<HighwaterMark>209688576</HighwaterMark>
<HighwaterTime>23.01.2008 18:30:56</HighwaterTime>
<QuotaTag />
</Item>
- <Item>
<Folder>e:\users\Test002</Folder>
<FolderURL>\\SRVDEPLOY\e$\users\Test002</FolderURL>
- <RemotePath>
<Path>\\SRVDEPLOY\Users$\Test002</Path>
</RemotePath>
<Owner>VORDEFINIERT\Administratoren</Owner>
<Limit>209715200</Limit>


Ähnliche fragen