Tipos simples

Declarações de elementos de esquema XML podem ter tipos simples ou complexos. Os elementos sem conteúdo de elemento e sem atributos são declarados com um tipo simples no esquema XML. Declarações de atributos podem ter tipos simples. Em geral, elementos com atributos e tipos simples são mapeados para campos no Designer. O tipo do campo é determinado a partir do valor do tipo simples.

Tipos simples incorporados

O Esquema XML define uma série de tipos simples integrados.

Os seguintes tipos são mapeados para um objeto de Campo de texto, que corresponde a qualquer objeto com conteúdo de texto simples:

  • string

  • normalizedString

  • token

  • Nome

  • NCName

  • QName

  • language

Os seguintes tipos são mapeados para o objeto de campo numérico:

  • float

  • double

  • decimal

  • integer

  • long

  • int

  • short

  • byte

  • positiveInteger

  • nonPositiveInteger

  • negativeInteger

  • nonNegativeInteger

  • unsignedLong

  • unsignedInt

  • unsignedShort

  • unsignedByte

Os mapeamentos de tipos de data e hora estão listados na tabela a seguir:

Data e hora

Tipo de objeto

duration

Campo de edição de texto

dateTime

Campo de data/hora. O tipo de controle é Data e Hora.

date

Campo de data/hora. O tipo de controle é Data.

time

Campo de data/hora. O tipo de controle é Hora.

gYear

Campo de texto com cláusula de figura.

gYearMonth

Campo de texto com uma cláusula de figura

gMonth

Campo de texto com uma cláusula de figura

gMonthDay

Campo de texto com uma cláusula de figura

gDay

Campo de texto com uma cláusula de figura

Os tipos de legados são mapeados para o objeto Campo de texto:

ID

IDREF

IDREFS

ENTITY

ENTITIES

NMTOKEN

NMTOKENS

NOTATION

Outros tipos estão mapeados na tabela a seguir:

Outros

Tipo de objeto

boolean

Caixa de seleção

hexBinary

Imagem estática

base64Binary

Imagem estática

anyURI

Campo de texto

Tipos simples restritos

Novos tipos simples podem ser derivados de outros tipos simples com a utilização das restrições do Esquema XML. Esta seção descreve como essas restrições podem ser mapeadas para designs de formulário.

Aspectos da enumeração
Uma declaração de elemento ou atributo de XML schema , de qualquer tipo de base que declare um ou mais valores enumerados, gerarão um objeto de lista drop-down, e não o campo padrão para o tipo básico da declaração, como mostrado no exemplo a seguir:
<xsd:element name="Colors"> 
    <xsd:complexType> 
        <xsd:simpleContent> 
            <xsd:extension base="xsd:string"> 
                <xsd:enumeration value="red"/> 
                <xsd:enumeration value="green"/> 
                <xsd:enumeration value="blue"/> 
            </xsd:extension> 
        </xsd:simpleContent> 
    </xsd:complexType> 
<xsd:element>

O conjunto de valores enumerados será armazenado como itens para a lista suspensa.

Aspectos de vínculos, comprimento e precisão
Sempre que possível, os aspectos de restrições que controlam vínculos (minInclusive, minExclusive, maxInclusive e maxExclusive), o comprimento (length, minLength e maxLength) e a precisão (totalDigits e fractionDigits) são mapeados para propriedades nos objetos gerados. Caso contrário, serão usados para gerar scripts de validação. Estes são dois exemplos:
  • O aspecto maxLength é usado para definir as propriedades de maxChars no valor do texto:

    <field><value><text maxChars="100"/></value></field>

  • O aspecto fractionDigits é usado para definir a propriedade fracDigits no valor decimal:

    <field><value><decimal fracDigits="3"/></value></field>

Tipos de lista e união

Tipos de lista permitem a definição de tipos cujos valores são listas de valores únicos separadas por espaços em branco. Os elementos e atributos que possuem tipos de listas serão mapeados para os objetos Campos de texto.

Tipos de união são tipos para os quais o conjunto de valores permitidos são uma união de dois ou mais conjuntos de valores. Os diversos conjuntos não são necessariamente do mesmo tipo de base. Geralmente, os tipos de união serão mapeados para objetos de Campo de texto. Entretanto, no caso em que todos os conjuntos na união forem do mesmo tipo, o mapeamento será o mesmo para qualquer tipo com o uso de um desses conjuntos (ou seja, uma união de dois conjuntos de valores enumerados gerará uma lista suspensa com todos os valores da união).