Olen teinud mõne edutu katse (pärast nende vigase .xml'i parandamist).
1) Java
javax.xml.*
org.w3c.*
org.xml.sax.*
Aga need failid olid nii gigad, et arvuti mälu sai otsa.
2) SQLXMLBulkLoad
See takerdus andmeskeemi kirjutamise taha, aga kel aega võib katsetada, kui sul on sobiv Windows.
1) Free download: SQL Server 2005 Express
[
www.microsoft.com]
2) Free download: SqlXml 3.0 Service Pack 3 (SP3)
[
www.microsoft.com]
3) Lihtsuse mõttes solgime andmebaasi "master", mida muidu ei soovitaks näppida.
Käivita serveris näiteks see:
USE master
CREATE TABLE Songs (
nro VARCHAR(15),
V NVARCHAR(225))
4) Tee töölauale mingi katsetamise kaust näiteks "Songs".
5) Salvesta sinna kausta "songs.xml".
6) Kirjuta selle "songs.xml" sisse:
<KOKONAISUUS>
<ITEM nro="h10100090001">
<V>Meil on veljed viied kuued</V>
</ITEM>
<ITEM nro="h10100090002">
<V>Kits kile karja,</V>
</ITEM>
<ITEM nro="h10100090003">
<V>Kiis kiike, laas laake.</V>
<!--
<V>Kiis kiike kõrgeella,</V>
-->
</ITEM>
</KOKONAISUUS>
7) Salvesta sinna kausta "songmapping.xml".
8) Kirjuta selle "songmapping.xml" sisse:
<?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" >
<AttributeType name="nro" dt:type="string" />
<ElementType name="V" dt:type="string" />
<ElementType name="KOKONAISUUS" sql:is-constant="1">
<element type="ITEM" />
</ElementType>
<ElementType name="ITEM" sql:relation="Songs">
<attribute type="nro" sql:field="nro" />
<element type="V" sql:field="V" maxOccurs="unbounded" />
</ElementType>
</Schema>
9) Salvesta sinna kausta "InsertSongs.vbs".
10) Kirjuta selle "InsertSongs.vbs" sisse:
MsgBox("start")
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data source=sinuServerName;database=master;Integrated Security=SSPI;"
'data source=select @@servername ' database= named by you
objBL.ErrorLogFile = "error.log"
MsgBox("0")
objBL.Execute "songmapping.xml", "songs.xml"
MsgBox("end")
Set objBL = Nothing
11) Kirjuta eelmise koodi "sinuServerName" asemele oma serveri nimi.
Kui sa ei tea seda, siis käivita serveris näiteks see:
select @@servername
12) Mine töölauale "Songs" kausta. Klõpsa "InsertSongs.vbs" salvestisel hiire paremat klahvi ja vali "Open with Command Prompt" (või käivita käsurealt).
13) Proge peaks saatma sulle kolm teadet: "start", "0" ja "end" ning sisestama su SQL Serveri Northwind andmebaasi Songs tabelisse kolme laulu numbrid ja esimesed värsid.
Kui juhtus mingi õnnetus, siis ta kirjutab sellest "error.log" nimelisse faili.
14) Minul tekkis tõrge, kui koristasin "songs.xml"ist kommentaarid:
<KOKONAISUUS>
<ITEM nro="h10100090001">
<V>Meil on veljed viied kuued</V>
</ITEM>
<ITEM nro="h10100090002">
<V>Kits kile karja,</V>
</ITEM>
<ITEM nro="h10100090003">
<V>Kiis kiike, laas laake.</V>
<V>Kiis kiike kõrgeella,</V>
</ITEM>
</KOKONAISUUS>
15) Teine "<V>" tag sama "<ITEM" elemendi sees põhjustab ikalduse, ja ta kirjutab "error.log" nimelisse faili: "Data mapping to column 'V' was already found in the data. Make sure that no two schema definitions map to the same column.".
16) Otsides võrgust lahendusi sellele: " was already found in the data. Make sure that no two schema definitions map to the same column."le leidsin hulga saatusekaaslasi, kuid mitte ühtki lahendust.
17) Üks mõeldav lahendus oleks parandada "songmapping.xml" andmeskeemi, kui oskaks.
Teine mõeldav lahendus oleks muuta nende "H_I_koll.xml" salvestiste ehitust XSL'iga, kui viitsiks.
Kolmas mõeldav lahendus oleks katsetada sama Oracle'ga, mis oleks samuti vastik.
Katsetan neljandat võimalust, mida praegu teile ei ütle.