Problema creazione schema xsd

giovedì 24 maggio 2012 - 09.59

shinpo Profilo | Newbie

Salve a tutti e buon giorno

Sono nuovo del forum ma mi hanno detto che è uno dei migliori per la domanda che vorrei fare. Vi spiego il problema

Devo creare un XML schema che rispecchi delle regole per la creazione di un XML. Ho letto la documentazione su W3School relativa alla creazione di un xsd.

Ho problema non riesco a capire come va scritto l' XSD affinchè ho la possibilità di aggiungere lo stesso tag quante volte voglio, mi spiego meglio con un esempio. Se volessi fare :

<ticket>
<justify>
<b>
<b>
<u>BLA BLA</u>
</b>
</b>
</justify>
</ticket>

Ora capisco che mettere in cascata il tag <b> non ha molto senso però serve per farvi capire il problema. Cioè come creo un XSD con la specifica di poter inserire lo stesso tag più volte al suo interno e al suo interno ancora inserire altri tag ?

Grazie per l'aiuto ma ho provato svariati tentativi ma non sono riuscito a farlo.

Ecco un esempio però alla creazione dell'XML devo scegliere quale elemento è il root e questa cosa non mi piace come potrei risolvere per scegliere sempre la stessa root?

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com" elementFormDefault="qualified">

<xs:element name="ticket">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="b" maxOccurs="unbounded"/>
<xs:element ref="u" maxOccurs="unbounded"/>
<xs:element ref="justify" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>

<xs:element name="b" type="btype"/>
<xs:complexType name="btype" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="b" maxOccurs="unbounded"/>
<xs:element ref="u" maxOccurs="unbounded"/>
<xs:element ref="justify" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>

<xs:element name="u" type="utype"/>
<xs:complexType name="utype" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="b" maxOccurs="unbounded"/>
<xs:element ref="u" maxOccurs="unbounded"/>
<xs:element ref="justify" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>

<xs:element name="justify" type="jtype"/>
<xs:complexType name="jtype" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="b" maxOccurs="unbounded"/>
<xs:element ref="u" maxOccurs="unbounded"/>
<xs:element ref="justify" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>

</xs:schema>

Giovanni
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5