sexta-feira, 9 de março de 2012

XML SCHEMA - PARTE VII

Tipos de dados de string

Tipos de dados string são usados para valores que contém cadeias de caracteres.

Tipo de dado string

O tipo de dado string pode conter caracteres, quebras de linha, retornos de carro, e caracteres de tabulação.
A seguir está o exemplo de uma declaração de string em um esquema:
  <xs:element name="customer" type="xs:string"/>
Um elemento em seu documento poderia ser assim:
  <customer>John Smith</customer>
Ou assim:
  <customer>  John Smith      </customer>
Nota: O processador XML não vai modificar o valor se você usar o tipo de dado string.

Tipo de dado normalizedString

O tipo de dado normalizedString é derivado do tipo de dado string.
Ele também contém caracteres, mas o processador XML vai removar quebras de linha, retornos de carro, e caracteres de tabulação.
A seguir está um exemplo de declaração de normalizedString em um esquema:
  <xs:element name="customer" type="xs:normalizedString"/>
Um element em seu documento poderia ser assim:
  <customer>John Smith</customer>
Ou assim:
  <customer>John Smith</customer>
Nota: No exemplo acima, o processador XML vai substituir a tabulação por espaços.

Tipo de dado token

O tipo de dado token também é derivado do tipo de dado string.
Ele também contém caracteres, mas o processador XML vai remover quebras de linha, retornos de carro, tabulação, espaços iniciais e finais, e espaços múltiplos.
A seguir está um exemplo de declaração token em um esquema:
  <xs:element name="customer" type="xs:token"/>
Um elemento em seu documento poderia ser assim:
  <customer>John Smith</customer>
Ou assim:
  <customer>  John Smith      </customer>
Nota: No exemplo acima o processador XML vai removar a tabulação.

Tipos de dados string

Name Description
ENTITIES
ENTITY
ID Uma string que representa o atributo ID em XML (usado apenas com atributos de schema)
IDREF Uma string que representa o atributo IDREF em XML (usado apenas com atributos schema)
IDREFS
language Uma string que contém a id de uma linguagem válida
Name Uma string que contém um nome XML válido
NCName
NMTOKEN Uma string que representa o atributo NMTOKEN em XML (usado apenas com atributos schema)
NMTOKENS
normalizedString Uma string que não contém quebras de linha, retornos de carro, ou tabulação
QName
string Uma cadeia de caracteres
token Um string que não contém quebras de linhs, retornos de carro, tabulação, espaços iniciais e finais, ou múltiplos espaços

Restrições em tipos de dados string

Restrições que podem ser usados com tipos de dados string:
  • enumeration
  • lenght
  • maxLength
  • minLenght
  • pattern (NMTOKENS, IDREFS, e ENTITIES não podem usar esta restrição)
  • whiteSpace

Tipos de dados de data e hora

Tipos de dados de data e hora são usados para valores que contém data e hora.

Tipo de dado date

O tipo de dado date é usado para especificar uma data.
A data é especificada da seguinte forma "YYYY-MM-DD", onde:
  • YYYY indica o ano
  • MM indica o mês
  • DD indica o dia
Nota: Todos componentes são obrigatórios!
A seguir está um exemplo de declaração uma data em um schema:
  <xs:element name="start" type="xs:date"/>
Um elemento em seu documento poderia ser assim:
  <start>2002-09-24</start>

Time zones

Para especificar um time zone (fuso horário), você pode usar uma data no horário UTC adicionando um "Z" depois da data, como aqui:
  <start>2002-09-24Z</start>
ou você pode especificar uma área do horário UTC adicionando um horário positivo ou negativo depois da data, como aqui:
  
  <start>2002-09-24-06:00</start>
  
  ou
  
  <start>2002-09-24+06:00</start>

Tipo de dado time

O tipo de dado time é usado para especificar um horário.
O horário é especificado da seguinte forma "hh:mm:ss", onde:
  • hh indica a hora
  • mm indica os minutos
  • ss indica os segundos
Nota: Todos componentes são obrigatórios!
A seguir está um exemplo de declaração de um time em em schema:
  <xs:element name="start" type="xs:time"/>
Um elemento em seu documento poderia ser assim:
  <start>09:00:00</start>
Ou assim:
  <start>09:30:10.5</start>

Time zones

Para especificar um time zone (fuso horário), você pode tanto usar um horário em UTC, adicionando um "Z" ao final dele, como aqui:
  <start>09:30:10Z</start>
ou especificando uma área do horário UTC, adicionando um horário positivo ou negativo depois dele, como aqui:
  
  <start>09:30:10-06:00</start>
  
  ou
  
  <start>09:30:10+06:00</start>

Tipo de dado dateTime

O tipo de dado dateTime é usado para especificar uma data e um horário.
O dateTime é especificado da seguinte forma "YYY-MM-DDThh:mm:ss", onde:
  • YYYY indica o ano
  • MM indica o mês
  • DD indica o dias
  • T inidica o início da seção obrigatória time
  • hh indica a hora
  • mm indica os minutos
  • ss indica os segundos
Nota: Todos componentes são obrigatórios!
A seguir está um exemplo de uma declaração dateTime em um schema:
  <xs:element name="stardate" type="xs:dateTime"/>
Um elemento em seu documento poderia ser assim:
     <startdate>2002-05-30T09:00:00</startdate>
Ou assim:
  <startdate>2002-05-30T09:30:10.5</startdate>

Time zones

Para especificar um time zone (fuso horário), você pode tanto utilizar um dateTime em UTC adicionado de um "Z", como aqui:
  <startdate>2002-05-30T09:30:10Z</startdate>
ou especificando uma área do horário UTC, adicionando um horário positivo ou negativo ao horário, como aqui:
  
  <startdate>2002-05-30T09:30:10-06:00</startdate>
  
  ou
  
  <startdate>2002-05-30T09:30:10+06:00</startdate>

Tipo de dado duration

O tipo de dado duration é usado para especificar um intervalo de tempo.
O intervalo de tempo é especificado da seguinte forma "PnYnMnDTnHnMnS", onde:
  • P indica o período (obrigatório)
  • nY indica o número de anos
  • nM indica o número de meses
  • nD indica o número de dias
  • T indica o início de uma seção de hora (obrigatório se você vai especificar horas, minutos ou segundos)
  • nH indica o número de horas
  • nM indica o número de minutos
  • nS indica o número de segundos
A seguir está um exemplo de uma declaração de duration em um schema:
  <xs:element name="period" type="duration"/>
Um elemento em seu documento poderia ser assim:
  <period>P5Y</period>
O exemplo acima indica um período de cinco anos.
Ou assim:
  <period>P5Y2M10D</period>
O exemplo acima indica um período de cinco anos, dois meses e dez dias.
Ou assim:
  <period>P5Y2M10DT15H</period>
O exemplo acima indica um período de cinco anos, dois meses, dez dias e 15 horas.
Ou assim:
  <period>PT15H</period>
O exemplo acima indica um período de 15 horas.

Duração negativa

Para especificar uma duração negativa, insira um sinal de menos antes de P:
  <period>-P10D</period>
O exemplo acima indica um período de menos 10 dias.

Tipos de dados de data e hora

Nome Descrição
date Define um valor de data
dateTime Define um valor de data e hora
duration Define um intervalo de tempo
gDay Define uma parte de uma data - o dia (DD)
gMonth Define uma parte de uma data - o mês (MM)
gMonthDay Define uma parte de uma data - o mês e o dia (MM-DD)
gYear Define uma parte de uma data - o ano (YYYY)
gYearMonth Define uma parte de uma data - o ano e o mês (YYYY-MM)
time Define um valor de hora

Restrições em tipos de dados date

Restrições que podem ser usadas com tipos de dados date:
  • enumeration
  • maxExclusive
  • maxInclusive
  • minEsclusive
  • minInclusive
  • pattern
  • whiteSpace

Tipos de dados numéricos

Tipos de dados decimais são usados para armazenar números

Tipo de dado decimal

O tipo de dado decimal é usado para especificar um valor numérico.
O exemplo a seguir é uma declaração de decimal em um schema:
  <xs:element name="prize" type="xs:decimal"/>
Um elemento em seu documento poderia ser assim:
  <prize>999.50</prize>
Ou assim:
  <prize>+999.5450</prize>
Ou assim:
  <prize>-999.5230</prize>
Ou assim:
  <prize>0</prize>
Ou assim:
  <prize>14</prize>
Nota: O número máximo de dígitos decimais que você pode especificar é 18!

Tipo de dado integer

O tipo de dado integer é usado para especificar um valor numérico sem um componente fracionário.
O exemplo a seguir é uma declaração de um integer em um schema:
  <xs:element name="prize" type="xs:integer"/>
Um elemento em seu documento poderia ser assim:
  <prize>999</prize>
Ou assim:
  <prize>+999</prize>
Ou assim:
  <prize>-999</prize>
Ou assim:
  <prize>0</prize>

Tipos de dados numéricos

Note que todos os tipos de dados abaixo derivam do tipo de dado Decimal (exceto ele mesmo)!
Nome Descrição
byte Um inteiro 8-bit com sinal
decimal Um valor decimal
int Um inteiro 32-bit com sinal
integer Um valor inteiro
long Um inteiro 64-bit com sinal
negativeInteger Um inteiro contendo apenas valores negativos (..., -2, -1)
nonNegativeInteger Um inteiro contendo apenas valores não negativos (0, 1, 2, ...)
nonPositiveInteger Um inteiro contendo apenas valores não positivos (..., -2, -1, 0)
positiveInteger Um inteiro contendo apenas valores positivos (1, 2, ...)
short Um inteiro 16-bit com sinal
unsignedLong Um inteiro 64-bit sem sinal
unsignedInt Um inteiro 32-bit sem sinal
unsignedShort Um inteiro 16-bit sem sinal
unsignedByte Um inteiro 8-bit sem sinal

Restrições em tipos de dados numéricos

Restrições que podem ser usadas com tipos de dados numéricos:
  • enumeration
  • fractionDigits
  • maxExclusive
  • maxInclusive
  • minExclusive
  • minInclusive
  • pattern
  • totalDigits
  • whiteSpace

Tipos de dados variados

Outros tipos de dados variados são boolean, base64Binary, hexBinary, float, double, anyURI, QName, e NOTATION.

Tipo de dado boolean

O tipo de dado boolean é usado para especificar um valor true (verdadeiro) ou false (falso).
O exemplo a seguir é uma declaração de um boolean em um schema:
  <xs:attribute name="disabled" type="xs:boolean"/>
Um elemento em seu documento poderia ser asism:
  <prize disabled="true">999</prize>
Nota: Valores válidos para boolean são true, false, 1 (que indica true), e 0 (que indica false).

Tipos de dados binários

Tipos de dados binários são usados para expressar dados binários.
Nós temos dois tipos de dados binários:
  • base64Binary (dado binário codificado em Base64)
  • hexBinary (dado binário codificado em hexadecimal)
O exemplo a seguir é uma declaração de um hexBinary em um schema:
  <xs:element name="blobsrc" type="xs:hexBinary"/>

Tipo de dado anyURI

O tipo de dado anyURI é usado para especificar uma URI.
O exemplo a seguir é uma declaração de um anyURI em um schema:
  <xs:attribute name="src" type="xs:anyURI"/>
Um elemento em seu documento poderia ser assim:
  <pic src="http://www.w3schools.com/images/smiley.gif" />
Nota: Se uma URI tem espaços, substitua-os por %20.

Tipos de dados variados

Nome Descrição
anyURI
base64Binary
boolean
double
float
hexBinary
NOTATION
QName

Restrições em tipos de dados variados

Restrições que podem ser usados com outros tipos de dados:
  • enumeration (um tipo de dado Boolean não pode usar esta restrição)
  • length (um tipo de dado Boolean não pode usar esta restrição)
  • maxLength (um tipo de dado Boolean não pode usar esta restrição)
  • minLength (um tipo de dado Boolean não pode usar esta restrição)
  • pattern
  • whiteSpace

Referência de elementos XSD

Elementos XSD

Validador XSD

Validador XSD

Nenhum comentário:

Postar um comentário