Latest web development tutorials

Indicatore di XML Schema

Con l'indicatore, possiamo controllare l'uso di elementi in modalità documento.


indicatore

Ci sono sette indicatori:

Indicatori di ordine:

  • tutto
  • scelta
  • sequenza

indicatore di occorrenza:

  • maxOccurs
  • minOccurs

Indicatore Gruppo:

  • nome del gruppo
  • nome attributeGroup

indicatore ordine

indicatori di ordine vengono utilizzati per definire l'ordine degli elementi.

Tutti indicatore

<Tutti> indicatore in conformità con le disposizioni del sub-elementi possono apparire in qualsiasi ordine, e ogni elemento figlio deve apparire solo una volta:

<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>

Nota: Quando si utilizza il <tutto> indicatore, è possibile mettere <minOccurs> è impostato su 0 o 1, ma solo l'indicatore <maxOccurs> è impostato su 1 (poi spiegare <minOccurs> e <maxOccurs>).

Indicatore scelta

<Scelta> indicatore fornisce un sotto-elemento si verificano o si può verificare un altro elemento figlio (o l'altro):

<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>

Indicatore di sequenza

<Sequenza> elemento figlio deve essere specificato in un ordine specifico:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>


indicatore di occorrenza

indicatori evento sono usati per definire la frequenza di un elemento verificarsi.

Nota: Per tutte le e l'indicatore "Ordine" "Gruppo" (qualsiasi, tutto, la scelta, la sequenza , il nome del gruppo e di riferimento del gruppo), che maxOccurs e minOccurs valori predefiniti sono 1.

indicatore maxOccurs

<MaxOccurs> indicatore può specificare il numero massimo di volte può verificarsi un elemento:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Gli esempi sopra riportati dimostrano che l'elemento "child_name" bambino può apparire l'elemento meno "persona" una volta (dove il valore predefinito di minOccurs è 1), appare al massimo 10 volte.

indicatore minOccurs

<MinOccurs> indicatore possono richiedere un numero minimo di volte può verificarsi un elemento:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Gli esempi sopra riportati dimostrano che l'elemento "child_name" bambino ci può essere un minimo di 0 a elemento "persona", appare al massimo 10 volte.

Suggerimento: per rendere il numero di occorrenze di un elemento non è limitato, si prega di utilizzare il maxOccurs = "senza limiti" questa dichiarazione:

Un esempio pratico:

Chiamato "Myfamily.xml" file XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">

<person>
<full_name>Hege Refsnes</full_name>
<child_name>Cecilie</child_name>
</person>

<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>

<person>
<full_name>Stale Refsnes</full_name>
</person>

</persons>

Sopra questo file XML contiene un elemento radice denominato "persone" di. All'interno di questo elemento radice, abbiamo definito tre elemento "persona". Ogni elemento "persona" deve contenere un elementi "FULL_NAME", ma può contenere fino a 5 elementi "child_name".

Questo è il file di schema "family.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>


indicatore di Gruppo

Indicatore di gruppo per diversi lotti di elementi relativi alla definizione.

Gruppo Element

gruppo di elementi definiti dal gruppo ha dichiarato:

<xs:group name="groupname">
...
</xs:group>

È necessario definire una dichiarazione all'interno del gruppo tutto, scelta o elementi di sequenza. Il seguente esempio definisce un gruppo denominato "persongroup", che definisce un insieme di elementi che devono essere presenti secondo un preciso ordine:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

Dopo aver definito il gruppo è completato, è possibile fare riferimento ad essa in un'altra definizione di:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>

Property Group

Attributo gruppi definiti dalla dichiarazione attributeGroup:

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>

L'esempio seguente definisce un gruppo di proprietà denominato "personattrgroup" di:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

Dopo aver definito un set completo di attributi, è possibile fare riferimento in un'altra definizione, in questo modo:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>