Condividi tramite


Elemento <xdr:ElementType>

Definisce un tipo di elemento da utilizzare all'interno dell'elemento Schema di uno schema XDR (XML-Data Reduced).

<ElementType
  content="{empty | textOnly | eltOnly | mixed}"
  dt:type="datatype"
  model="{open | closed}"
  name="idref"
  order="{one | seq | many}">

Attributi

  • content
    Indica se il contenuto deve essere vuoto o se può presentare testo, elementi o entrambi. È possibile assegnare i seguenti valori all'attributo. Il valore predefinito per l'attributo content è mixed. Se l'attributo content è impostato su mixed, è necessario impostare l'attributo order sul valore many.

    empty

    L'elemento non può presentare alcun contenuto.

    textOnly

    L'elemento può contenere solo testo e non elementi. Se l'attributo model è impostato su open, l'elemento può contenere testo e altri elementi privi di nome.

    eltOnly

    L'elemento può contenere solo gli elementi specificati. Non può contenere testo libero.

    mixed

    L'elemento può contenere sia elementi specificati che testo. Il valore predefinito è mixed. Se il valore dell'attributo content è mixed, gli attributi minOccurs e maxOccurs non genereranno un errore di convalida se gli elementi figlio non sono contenuti nell'intervallo.

ms256223.note(it-it,VS.100).gifNota:
Gli elementi con content="empty" e model="open" non sono consentiti.

Esempio

Descrizione

Nell'esempio seguente è illustrato l'utilizzo dell'attributo content in base a valori diversi.

Esempio di codice precedente

Nell'esempio seguente è illustrato l'attributo content per una DTD (Document Type Definition) equivalente.

  • dt:type
    Il tipo di dati dell'elemento. I tipi di dati validi sono definiti in Riferimenti di tipi di dati di schemi XDR.
  • model
    Indica se il contenuto può includere solo ciò che è specificato nel modello del contenuto. Il valore predefinito è open.

    <ElementType name="x" model="open"/>
    

    Se un modello è definito come open, l'elemento può includere altri elementi o attributi non dichiarati in modo esplicito nel modello del contenuto. Questi tag aggiuntivi possono derivare dallo stesso spazio dei nomi o da uno spazio dei nomi diverso. Se appartengono allo stesso spazio dei nomi, è necessario che nello schema sia presente una definizione ElementType o AttributeType corrispondente.

    Se il modello è definito come closed, l'elemento non può includere gli elementi e il contenuto misto specificati nel modello del contenuto. La DTD utilizza un modello closed.

  • name
    Il nome dell'elemento. Questo attributo è obbligatorio. Se questo tipo di elemento viene dichiarato un elemento figlio valido di un altro tipo di elemento, tale nome verrà specificato all'interno di un elemento element.

    <ElementType name="x">
    </ElementType>
    

    La DTD equivalente è la seguente:

    <!ELEMENT x EMPTY>
    
  • order
    Indica come devono essere visualizzati gli elementi. È possibile specificare i seguenti valori.

    one

    Consente solo un elemento di un insieme di elementi. Per consentire a un documento di eseguire correttamente la convalida quando è specificato l'attributo one, l'attributo model per ElementType deve essere specificato come closed.

    seq

    Consente di visualizzare gli elementi nella sequenza specificata.

    many

    Consente di visualizzare gli elementi in qualsiasi ordine o di non visualizzarli. Se si specifica many per l'attributo order, i valori maxOccurs non saranno più rilevanti durante la procedura di convalida.

    Il valore seq consente di specificare sequenze valide. Ad esempio, può essere utilizzato per specificare quando una determinata sequenza, quale x1,y1 o x2,y2, è valida ma nessun altra possibile combinazione è valida. Il valore seq svolge la stessa funzione delle parentesi in una DTD. Il valore predefinito è seq.

    Nell'esempio seguente viene illustrata l'impostazione one. Se si specifica one per l'attributo order, il valore dell'attributo model deve essere closed.

    Nell'esempio seguente viene illustrata l'impostazione seq.

    Nell'esempio seguente viene illustrata l'impostazione many.

    Se l'attributo order è impostato su many, gli attributi minOccurs e maxOccurs non saranno rilevanti durante la procedura di convalida. Invece di utilizzare l'impostazione many per l'attributo order assieme a minOccurs e maxOccurs, utilizzare l'impostazione seq. Ad esempio, si consideri lo schema seguente, in cui è impostato order="seq".

Se il seguente documento XML viene convalidato con lo schema precedente, la procedura di verifica non verrà completata correttamente poiché il numero di elementi Publisher è maggiore del valore 1 specificato in maxOccurs. Tuttavia, se il valore order è impostato su many, la convalida non verrà eseguita correttamente poiché l'impostazione maxOccurs="1" verrà ignorata.

Informazioni sull'elemento

Numero di occorrenze

Illimitato

Elementi padre

Schema

Elementi figlio

attribute, AttributeType, datatype, description, element, group

Proprietà dell'elemento

TAG Spiegazione

Name="idref"

Gli elementi ElementType e AttributeType devono avere dei nomi.

Model="open"

Gli elementi o il contenuto misto non specificati nel modello del contenuto sono consentiti in questo elemento. Per creare una sottoclasse di una definizione particolare, questa impostazione deve essere open (se in futuro verrà implementata l'ereditarietà).

Model="closed"

Gli elementi o il contenuto misto non specificati nel modello del contenuto non sono consentiti in questo elemento.

content="empty"

L'elemento non può contenere alcun valore.

content="textOnly"

L'elemento può contenere solo testo e non elementi. Se model="open", l'elemento può ancora contenere del testo e altri elementi senza nome.

*

content="mixed"

L'elemento può contenere sia elementi con nome che testo. Se model="open", l'elemento può ancora contenere del testo e altri elementi senza nome. Implica le impostazioni di order='many' e di maxOccurs="*".

order='one'

Consente un solo elemento di un insieme di elementi.

*

order='seq'

Indica che gli elementi devono essere visualizzati nella sequenza elencata. Si tratta di un'impostazione analoga a quella predefinita per un elenco di elementi, che tuttavia è necessaria per raggruppare le sequenze, come nell'esempio in cui x1,y1 o x2,y2 sono validi ma in cui non esistono altre combinazioni. Svolge la stessa funzione delle parentesi in un file DTD.

order='many'

Gli elementi possono essere visualizzati (o non esserlo) in qualsiasi ordine.

dt:type=datatype

Specifica che l'elemento deve contenere un valore integer. Per un elenco dei tipi di dati primitivi, vedere Riferimento dei tipi di dati di XDR Schema.

Note

Il termine "tipo di elemento" fa riferimento al tipo di elemento costituito da istanze che condividono lo stesso nome. I tipi di elemento sono dichiarati negli schemi, mentre gli elementi sono presenti nei documenti. I tipi di elementi vengono dichiarati con il tipo di elemento ElementType.

Esempio

Vedere anche

Riferimento

Riferimenti dei tipi di dati di schemi XDR