Ik ben .NET bezig met een programma waarbij ik XML moet terugsturen. Ik heb hiervoor een strong typed dataset gemaakt aan de hand van een XSD, die dataset wil ik dan in XML laten wegschrijven.
De XML bestanden die ik moet sturen zien er bijv. zo uit:
Er zit op zich geen limiet aan het aantal items en het mag ook 0 zijn. De versie, responsecode en timestamp zijn op zich variabel.
Ik heb hier de volgende XSD voor gemaakt:
Helaas gaat het genereren van een dataset niet goed, ik krijg een tabel Item (die is goed) en een tabel Items. Die heb ik dus helemaal niet nodig, mijn xml heeft maar 1 tag Items met daaronder 0 of meer tags Item. Version, ResponseCode en Timestamp zijn attributen van de tag Items. Mijn vraag is dan ook: maak ik een fout in mijn XSD diagram, of verwacht ik teveel van de functie generate dataset van .NET en moet ik zelf nog het een en ander aanpassen in de gegenereerde klasse? Het lijkt mij eerlijk gezegd dat .NET dit zelf wel goed moet kunnen, dus zal mijn XSD wel fout zijn. Hoop dat iemand mij even wat de goede richting in kan sturen
De XML bestanden die ik moet sturen zien er bijv. zo uit:
XML:
1
2
3
4
5
| <items Version="0001" ResponseCode="000" Timestamp="2006-06-30"> <item naam="itemA" itemID="1" lokatie="posA" /> <item naam="itemB" itemID="4" lokatie="posE" /> <item naam="itemC" itemID="9" lokatie="posT" /> </items> |
Er zit op zich geen limiet aan het aantal items en het mag ook 0 zijn. De versie, responsecode en timestamp zijn op zich variabel.
Ik heb hier de volgende XSD voor gemaakt:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <?xml version="1.0" encoding="utf-8" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xsd:complexType name="ItemType"> <xsd:attribute name="Naam" type="xsd:string" /> <xsd:attribute name="ItemID" type="xsd:string" /> <xsd:attribute name="Lokatie" type="xsd:string" /> </xsd:complexType> <xsd:element name="Items"> <xsd:complexType> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="Item" type="ItemType" /> </xsd:sequence> <xsd:attribute name="Version" type="xsd:string" /> <xsd:attribute name="ResponseCode" type="xsd:string" /> <xsd:attribute name="Timestamp" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:schema> |
Helaas gaat het genereren van een dataset niet goed, ik krijg een tabel Item (die is goed) en een tabel Items. Die heb ik dus helemaal niet nodig, mijn xml heeft maar 1 tag Items met daaronder 0 of meer tags Item. Version, ResponseCode en Timestamp zijn attributen van de tag Items. Mijn vraag is dan ook: maak ik een fout in mijn XSD diagram, of verwacht ik teveel van de functie generate dataset van .NET en moet ik zelf nog het een en ander aanpassen in de gegenereerde klasse? Het lijkt mij eerlijk gezegd dat .NET dit zelf wel goed moet kunnen, dus zal mijn XSD wel fout zijn. Hoop dat iemand mij even wat de goede richting in kan sturen
Prepare for unforeseen consequences