Elemento do XML Schema
Definição e uso
O elemento element define um elemento.
Informações do elemento
Frequência de ocorrência | Número de elementos definidos na arquitetura. |
Elemento pai | schema, choice, all, sequence |
Conteúdo | simpleType, complexType, key, keyref, unique |
Sintaxe
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger nillable=true|false abstract=true|false block=(#all|lista de (extension|restriction)) final=(#all|lista de (extension|restriction)) qualquer atributos > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(O símbolo ? declara no elemento element, que pode aparecer zero ou uma vez, o símbolo * declara que o elemento pode aparecer zero ou várias vezes.).
Atributo
id
Opcional. Define um ID único para o elemento.
name
Opcional. Define o nome do elemento. Se o elemento pai for do tipo schema, essa propriedade é necessária.
ref
Opcional. Referência para outro elemento. A propriedade ref pode conter um prefixo de espaço de nomes. Se o elemento pai for do tipo schema, não é usado essa propriedade.
type
Opcional. Define o nome do tipo de dados embutido, ou define o nome do elemento simpleType ou complexType.
substitutionGroup
Opcional. Define o nome do elemento que pode ser usado para substituir esse elemento. O elemento deve ter o mesmo tipo ou ser derivado do tipo especificado.
Não é permitido usar essa propriedade se o elemento pai não for do tipo schema.
default
Opcional. Define um valor padrão para o elemento (apenas quando o conteúdo do elemento é do tipo simples ou textOnly).
fixed
Opcional. Define um valor fixo para o elemento (apenas quando o conteúdo do elemento é do tipo simples ou textOnly).
form
opcional. a forma do elemento. O valor padrão é o valor da propriedade elementFormDefault do elemento schema que contém essa propriedade. Este valor deve ser uma das seguintes strings: "qualified" ou "unqualified".
Se o elemento pai é o elemento schema, essa propriedade não pode ser usada.
- Se o valor for "unqualified", o elemento não precisa ser qualificado por prefixo de espaço de nomes.
- Se o valor for "qualified", o elemento deve ser qualificado por prefixo de espaço de nomes.
maxOccurs
opcional. define a maior vez que o elemento element pode aparecer no elemento pai. Este valor pode ser um inteiro maior ou igual a zero. Se não desejar estabelecer nenhum limite para o número máximo, use a string "unbounded". O valor padrão é 1.
Se o elemento pai é o elemento schema, essa propriedade não pode ser usada.
minOccurs
opcional. define a menor vez que o elemento element pode aparecer no elemento pai. Este valor pode ser um inteiro maior ou igual a zero. O valor padrão é 1.
Se o elemento pai é o elemento schema, essa propriedade não pode ser usada.
nillable
opcional. indica se pode ser atribuído um valor zero explícito a esse elemento. Esta opção se aplica ao conteúdo do elemento e não é uma propriedade do elemento. O valor padrão é false.
Se nillable for true, permitirá que a instância do elemento possa configurar a propriedade nil como true. A propriedade nil é definida como parte do espaço de nomes de esquema da instância.
Por exemplo, o próximo trecho define um único elemento e define nillable como true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
O próximo trecho usa esse elemento e tem valor zero explícito (a propriedade nil configurada como true).
<myDate xsi:nil="true"></myDate>
abstract
opcional. indica se o elemento pode ser usado no documento de instância. Se o valor for true, o elemento não pode aparecer no documento de instância. Em vez disso, os elementos que contêm o QName da propriedade substitutionGroup dessa elemento devem aparecer no local do elemento. Múltiplos elementos podem referenciar esse elemento em suas propriedades substitutionGroup. O valor padrão é false.
block
opcional. tipo derivado. A propriedade block impede que elementos com tipo derivado especificado sejam usados para substituir esse elemento. Este valor pode conter #all ou uma lista, que é um subconjunto de extensão, restrição ou substituição:
- extensão - evitar que elementos derivados por extensão sejam usados para substituir esse elemento.
- restrição - impede que elementos derivados por restrição sejam usados para substituir este elemento.
- substituição - impede que elementos derivados por substituição sejam usados para substituir este elemento.
- #all - impede que todos os elementos derivados sejam usados para substituir este elemento.
final
Opcional. Define o valor padrão do atributo final do elemento. Se o elemento pai não for o elemento schema, não pode usar essa propriedade. O valor pode conter #all ou uma lista, que é um subconjunto de extensão ou restrição:
- extensão - impede que elementos derivados por extensão sejam usados para substituir este elemento
- restrição - impede que elementos derivados por restrição sejam usados para substituir este elemento
- #all - impede que todos os elementos derivados sejam usados para substituir este elemento
qualquer atributos
Opcional. Especifica qualquer outro atributo com namespace não-esquema.
Exemplo
Exemplo 1
O exemplo a seguir é um schema que contém quatro elementos simples: "fname", "lname", "age" e "dateborn", os tipos são string, nonNegativeInteger e date:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema>
Exemplo 2
O exemplo a seguir é um schema com um elemento de tipo complexo "note". O elemento "note" contém quatro elementos simples: "to", "from", "heading" e "body":
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Exemplo 3
Este exemplo é o mesmo que o exemplo 2, mas neste exemplo, escolhemos usar o atributo ref para referenciar o nome do elemento:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element ref="to"/> <xs:element ref="from"/> <xs:element ref="heading"/> <xs:element ref="body"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:schema>