edit: ik zie het alweer, de vraag is te moeilijk ongewoon/vaag
... ik ga voor de 0 replies

Een vraagje over een schemabestand voor het 'dumpen' van een XML bestand naar een tabel.
Nu heb ik een Data en Schema bestand gedefinieerd (beide zijn .xml) om deze, met behulp van de commando "EXEC @hr = sp_OACreate 'SQLXMLBulkLoad.SQLXMLBulkLoad.3.0', @object OUT" (in een stored proc) te 'mappen/dumpen' naar/in een tabel, namelijk Tabel1. Zie hieronder.
met een simpelere XML bestand is het me al gelukt, maar ik moet een uitgebreider bestand kunnen inlezen ...
Neem het volgende XML (data) bestand:
En de schema bestand:
Nu wil ik de waarde binnen de tags <h></h> en <i></i> ook in dezelfde tabel hebben (niet in een 2e tabel), omdat ze gerelateerd zijn aan dezelfde item.
De vraag is hoe ik dat doe? (op de plaats van de ??? ?)
Onderstaande schema werkt niet, er komt dan NULL in de tabel te staan voor waarden column3 en 4
:
Alle tips/voorbeelden/commentaar welkom! Thnx
Een vraagje over een schemabestand voor het 'dumpen' van een XML bestand naar een tabel.
Nu heb ik een Data en Schema bestand gedefinieerd (beide zijn .xml) om deze, met behulp van de commando "EXEC @hr = sp_OACreate 'SQLXMLBulkLoad.SQLXMLBulkLoad.3.0', @object OUT" (in een stored proc) te 'mappen/dumpen' naar/in een tabel, namelijk Tabel1. Zie hieronder.
met een simpelere XML bestand is het me al gelukt, maar ik moet een uitgebreider bestand kunnen inlezen ...
Neem het volgende XML (data) bestand:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| ... <a> <b> <c> <d> <e>waarde1</e> <f>waarde2</f> <g> <h>waarde3</h> <i>waarde4</i> </g> <j>waarde5</j> </d> </c> </b> </a> |
En de schema bestand:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <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="a" content="eltOnly" sql:is-constant="1">
<element type="b"/>
</ElementType>
<ElementType name="b" content="eltOnly" sql:is-constant="1">
<element type="c"/>
</ElementType>
<ElementType name="c" content="eltOnly" sql:is-constant="1">
<element type="d"/>
</ElementType>
<ElementType name="d" sql:relation="Table1">
<element type="e" sql:field="column1"/>
<element type="f" sql:field="column2"/>
----> ??? <----
</ElementType>
... |
Nu wil ik de waarde binnen de tags <h></h> en <i></i> ook in dezelfde tabel hebben (niet in een 2e tabel), omdat ze gerelateerd zijn aan dezelfde item.
De vraag is hoe ik dat doe? (op de plaats van de ??? ?)
Onderstaande schema werkt niet, er komt dan NULL in de tabel te staan voor waarden column3 en 4
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <ElementType name="a" content="eltOnly" sql:is-constant="1"> <element type="b"/> </ElementType> <ElementType name="b" content="eltOnly" sql:is-constant="1"> <element type="c"/> </ElementType> <ElementType name="c" content="eltOnly" sql:is-constant="1"> <element type="d"/> </ElementType> <ElementType name="d" sql:relation="Table1"> <element type="e" sql:field="column1"/> <element type="f" sql:field="column2"/> <element type="g"/> </ElementType> <ElementType name="d" sql:relation="Table1"> <element type="h" sql:field="column3"/> <element type="i" sql:field="column4"/> </ElementType> |
Alle tips/voorbeelden/commentaar welkom! Thnx
[ Voor 68% gewijzigd door Altaphista op 05-01-2004 13:37 ]
Je gaat het pas zien als je het doorhebt.