Ciao a tutti,
sto lavorando in questi giorni su un file XML e mi servirebbe un consiglio: in pratica dovrei creare un nodo che mi faccia da "default", ossia che contenga tutti gli elementi che non cadono negli altri nodi precedenti dello stesso tipo.
Ad esempio io definisco tre intervalli (range) per il nodo length e al fondo vorrei che ci fosse un nodo con nome "default" per gli elementi che non cadono in len_1, len_2 o len_3.
E' possibile fare ciò usando l'XML Schema?
Ogni consiglio è ben accetto.
Grazie.
- Esempio file XML:
codice:
<?xml version="1.0" encoding="UTF-8"?>
<rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<length>
<range name="len_1">
<minval>1</minval>
<maxval>100</maxval>
</range>
<range name="len_2">
<minval>101</minval>
<maxval>200</maxval>
</range>
<range name="len_3">
<minval>201</minval>
<maxval>300</maxval>
</range>
</length>
</rules>
- Esempio di file XSD:
codice:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="minval" type="xs:positiveInteger"/>
<xs:element name="maxval" type="xs:positiveInteger"/>
<xs:attribute name="name" type="xs:string"/>
<xs:element name="rules">
<xs:complexType>
<xs:sequence>
<xs:element name="length">
<xs:complexType>
<xs:sequence>
<xs:element name="range" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="minval"/>
<xs:element ref="maxval"/>
</xs:sequence>
<xs:attribute ref="name"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>