Elemento complexType do XML Schema
Definição e uso
O elemento complexType define um tipo complexo. O elemento de tipo complexo contém outros elementos e/ou atributos de XML.
元素信息
informações do elemento | ocorrência |
dentro do esquema é ilimitado; dentro do elemento é uma vez. | elemento pai |
elemento、redefinir、esquema | conteúdo |
anotação、simpleContent、complexContent、grupo、todos、escolha、sequência、atributo、grupoAtributo、anyAttribute
gramática <complexType id=ID nome=NCName abstrato=true|false mixed=true|false bloco=(#all|lista de (extensão|restrição)) any attributes final=(#all|lista de (extensão|restrição)) > (especificação?,(simpleContent|complexContent|((grupo|todos| </complexType>
(? o símbolo de declaração está no elemento complexType, o elemento pode aparecer zero ou uma vez, * o símbolo de declaração indica que o elemento pode aparecer zero ou várias vezes.)
atributo
id
opcional. determina o ID único do elemento.
nome
opcional. determina o nome do elemento.
abstrato
opcional. determina se o tipo complexo pode ser usado na instância do documento. Se o valor for true, o elemento não pode usar diretamente o tipo complexo, mas deve usar um tipo complexo derivado do tipo complexo. O valor padrão é false.
mixed
opcional. determina se dados de caractere podem aparecer entre os subelementos deste tipo complexo. O valor padrão é false.
- se o elemento simpleContent é um subelemento, não é permitido a propriedade mixed.
- se o elemento complexContent é um subelemento, a propriedade mixed pode ser sobrescrita pela propriedade mixed do elemento complexContent.
bloco
opcional. impede que tipos complexos com tipo derivado especificado sejam usados para substituir o tipo complexo. Este valor pode conter #all ou uma lista, que é um subconjunto de extensão ou restrição:
- extensão - impede que tipos complexos derivados por extensão sejam usados para substituir o tipo complexo.
- restrição - impede que tipos complexos derivados por restrição sejam usados para substituir o tipo complexo.
- #all - Impede que todos os tipos complexos derivados sejam usados para substituir este tipo complexo.
final
Opcional. Impede que tipos específicos sejam derivados deste elemento complexType. Este valor pode conter #all ou uma lista, que é um subconjunto de extension ou restriction.
- extension - Impede derivações através de expansões.
- restriction - Impede derivações através de restrições.
- #all - Impede todas as derivações (expansões e restrições).
any attributes
Opcional. Especifica qualquer outra propriedade com namespace não-esquema.
Exemplo
Exemplo 1
No exemplo a seguir, há um elemento complexo chamado "note":
<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>
Exemplo 2
No exemplo a seguir, há um tipo complexo "fullpersoninfo", que expande o tipo herdado usando três elementos complementares (address, city e country) e é derivado de outro tipo complexo "personinfo":
<xs:element name="employee" type="fullpersoninfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="fullpersoninfo"> <xs:complexContent> <xs:extension base="personinfo"> <xs:sequence> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>
No exemplo acima, o elemento "employee" deve conter em ordem os seguintes elementos: "firstname", "lastname", "address", "city" e "country".