Imam xsd datoteku sa XML shemom koju bih htio učitati u Dataset. Shema se sastoji od 3 top level elementa(pictures, folders, categories) koji mogu sadržavati neograničen broj podelemenata.
Problem je da kad učitam shemu u dataset, umjesto 3 tablice za 3 top level elementa ja dobijem 6 tablica, tj. dobijem tablice za top level elemente ali i 3 tablice sa nazivom podelemenata.
Shema:
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by jura (klafura) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="gallery">
<xs:complexType>
<xs:sequence>
<xs:element name="pictures" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="picture" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="displayName" type="xs:string"/>
<xs:attribute name="folderID" type="xs:int"/>
<xs:attribute name="catID" type="xs:int"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="folders" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="folder" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="ID" type="xs:int"/>
<xs:attribute name="path" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="categories" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="category" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="ID" type="xs:int"/>
<xs:attribute name="parID" type="xs:int"/>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Željeni oblik XML-a u datasetu i nakon njega:
<?xml version="1.0" encoding="UTF-8"?>
<gallery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="gallery2.xsd">
<pictures>
<picture name="bukva.jpg" displayName="lijepa bukva" folderID="1" catID="1"/>
<picture name="val.jpg" displayName="lijepi val" folderID="1" catID="2"/>
</pictures>
<folders>
<folder ID="1" path="C:\slike"/>
</folders>
<categories>
<category ID="1" parID="0" name="šume"/>
<category ID="2" parID="0" name="more"/>
</categories>
</gallery>
...a ovako to izgleda nakon učitavanja sheme i dodavanja par redaka u dataset te pozivanja WriteXml-a:
<?xml version="1.0" standalone="yes"?>
<gallery>
<picture name="bukva.jpg" displayName="lijepa bukva" folderID="1" catID="1" />
<picture name="val.jpg" displayName="lijepi val" folderID="1" catID="2" />
</gallery>
Ako netko zna kako dobiti željeni oblik XML-a(samo tri tablice) i zadržati tu formu na izlazu iz dataseta, neka kaže sad il' šuti zauvijek :)