2009-11-12 5 views
5

ho hava un documento XML (e elemento complesso) che è simile a questo esempio:E 'possibile avere complexType e gli elementi all'interno, ma senza la parte di sequenza

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

Ma nel mio xml non dovrebbe avere importanza se aggiungo prima il nome o il cognome. Quindi mi piacerebbe rimuovere la parte "xs: sequence" ma non sono sicuro di cosa dovrei sostituirlo.

Se non è possibile, allora perché non è possibile?

Aggiornamento: Se cambio con < cx: tutto> Ottengo questo errore: "{verifica max} L'di tutte le parti {} di un gruppo tutto deve essere 0 o 1".

+2

Sì, questa è una limitazione di sistema nota di - maxOccurs può essere solo 0 o 1. Non hai menzionato nient'altro nel tuo esempio, o ..... –

+0

C'è qualche altra opzione oltre a dove io don ' t ottenere questa limitazione? – Imageree

+0

Un dipendente può avere più di un nome o più di un cognome? – jason

risposta

8

Uso <xs:all> invece di <xs:sequence>:

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

Vedi l'W3Schools page sugli indicatori dello schema:

All Indicator

The <all> indicator specifies that the child elements can appear in any order, and that each child element must occur only once:

+0

Se lo cambio con ottengo questo errore: "Il {max si verifica} di tutte le {parti} di un gruppo tutto deve essere 0 o 1 ". – Imageree

+0

sì, questa è una limitazione di '' - maxOccurs può essere solo 0 o 1. Non hai menzionato nient'altro nel tuo esempio, o ..... –

0

si desidera che il All indicator (<xs:all>).

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

La XML Schema Tutorial su W3Schools è molto utile.

+0

Se lo cambio con ottengo questo errore: "The {max occorrenza} di tutte le {parti} di un gruppo tutto deve essere 0 o 1 ". – Imageree

2
<xs:element name="employee"> 
    <xs:complexType> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
      <xs:element name="firstname" type="xs:string" /> 
      <xs:element name="lastname" type="xs:string" /> 
     </xs:choice> 
    </xs:complexType> 
</xs:element> 

Ciò consentirà di disporre di elementi in qualsiasi sequenza e quantità.

+1

Sfortunatamente, non è vero. '' consente solo uno degli elementi specificati. Quindi nel tuo esempio permetterebbe solo firstname * XOR * lastname (ma potrebbe quindi contenere qualsiasi numero di occorrenze di quell'elemento). – user2846469

Problemi correlati