Moin in die Runde,
ich bin "der Neue hier" und habe Euer Forum bei meinem Versuch gefunden, eine funktionierende Schema-Datei für den Import von ca. 1,5 Mio XML-Dateien in eine SQL-Datenbank zu erzeugen.
Ich bin, was XML angeht, ein ziemlicher Neuling, speziell mit der Frage zu Schemas habe ich mich bisher nicht auseinandergesetzt, das wird sich nun ändern müssen.
Zu meiner konkreten Herausforderung:
Ich habe XML-Dateien, die alle den folgenden Aufbau haben:
Bei meiner Recherche habe ich das Vorgehen gefunden, parallel zu der XML-Datei noch eine Schemadatei zu erzeugen und die dann mittels SQLXMLBULKLOAD aus einem VBScript in die Datenbank zu importieren.
DAS funktioniert rein technisch und die VB-Routine, aus sämtlichen Unterordnern in meiner Dateistruktur die XML-Dateien auszulesen und abzuarbeiten, das ist auch kein Problem.
Nur mit der Schemadatei tu ich mich schwer.
Momentan sieht sie wie folgt aus:
</Schema>
Wenn ich das Script nun mit einer Beispieldatei laufen lasse, erzeugt es mir in meiner Datenbank zwei leere Datensätze, die Felder haben jeweils den Wert NULL.
Meine Tabelle DocMeta hat die fünf Spalten
DocumentID,
FileID,
DocName,
DocSize,
MimeType
Hat von Euch jemand einen Tipp für mich, wie ich die Schemadatei ändern muss, damit die Inhalte aus dem XML in die Datenbank übertragen werden?
Ich danke Euch schon jetzt ganz herzlich und wünsche ein feines Wochenende!
Viele Grüße
Dimo
ich bin "der Neue hier" und habe Euer Forum bei meinem Versuch gefunden, eine funktionierende Schema-Datei für den Import von ca. 1,5 Mio XML-Dateien in eine SQL-Datenbank zu erzeugen.
Ich bin, was XML angeht, ein ziemlicher Neuling, speziell mit der Frage zu Schemas habe ich mich bisher nicht auseinandergesetzt, das wird sich nun ändern müssen.
Zu meiner konkreten Herausforderung:
Ich habe XML-Dateien, die alle den folgenden Aufbau haben:
Code:
<?xml version="1.0" encoding="utf-8"?> <Document ID="0000a\00d48436-7edc-45c1-ac56-8fe28bfd1f17"> <Fields> <DocumentId Name="DocumentId" Type="System.String" Mandatory="false"><![CDATA[437445]]></DocumentId> </Fields> <Files> <File ID="0001" Name="IrgendEinDocName.doc" Size="55296" MimeType="application/octet-stream" IsEncrypted="false" /> </Files> </Document>
DAS funktioniert rein technisch und die VB-Routine, aus sämtlichen Unterordnern in meiner Dateistruktur die XML-Dateien auszulesen und abzuarbeiten, das ist auch kein Problem.
Nur mit der Schemadatei tu ich mich schwer.
Momentan sieht sie wie folgt aus:
Code:
<?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="Document" sql:is-constant="1"> <element type="Fields" /> <element type="Files" /> </ElementType> <ElementType name="Fields" sql:relation="DocMeta"> <AttributeType name="DocumentID" dt:type="int" /> <attribute type="DocumentID" sql:field="DocumentID" /> </ElementType> <ElementType name="Files" sql:relation="DocMeta"> <AttributeType name="ID" dt:type="string" /> <AttributeType name="Name" dt:type="string" /> <AttributeType name="Size" dt:type="string" /> <AttributeType name="MimeType" dt:type="string" /> <attribute type="ID" sql:field="FileID" /> <attribute type="Name" sql:field="DocName" /> <attribute type="Size" sql:field="DocSize" /> <attribute type="MimeType" sql:field="MimeType" /> </ElementType>
</Schema>
Wenn ich das Script nun mit einer Beispieldatei laufen lasse, erzeugt es mir in meiner Datenbank zwei leere Datensätze, die Felder haben jeweils den Wert NULL.
Meine Tabelle DocMeta hat die fünf Spalten
DocumentID,
FileID,
DocName,
DocSize,
MimeType
Hat von Euch jemand einen Tipp für mich, wie ich die Schemadatei ändern muss, damit die Inhalte aus dem XML in die Datenbank übertragen werden?
Ich danke Euch schon jetzt ganz herzlich und wünsche ein feines Wochenende!
Viele Grüße
Dimo
Comment