[x]

  Conheça o Plugfeed | » Início » Programação » XML » Um pouco além do XML: Introdução ao XML Schema (XSD) - Parte 4
Conheça o Plugfeed | » Início » Programação » XML » Um pouco além do XML: Introdução ao XML Schema (XSD) - Parte 4 -->
 
Avaliação: | Publicado em: 27/12/2006
Um pouco além do XML: Introdução ao XML Schema (XSD) - Parte 4
Gustavo Maia Aguiar é graduado em Administração de Empresas e pós-graduado em bancos de dados, atua na área de tecnologia de informação desde 2001, exercendo funções de desenvolvedor, analista, administrador de banco de dados (DBA) e administrador de dados (AD). É profissional certificado (MCP, MOS, MCDBA, MCAD, MCTS, MCITP, MCT, MVP e Itil Certified Professional). Já trabalhou em instituições do governo, iniciativa privada e parceiros Microsoft em atividades de suporte, consultoria e treinamento. É membro ativo e moderador dos fóruns de SQL Server do MSDN e TechNet e das comunidades SQL Server Brasil e SQL Brasil (Orkut). Semanalmente publica artigos de banco de dados e SQL Server em seu blog.
Um pouco além do XML: Introdução ao XML Schema (XSD) - Parte 4

Nos artigos anteriores, o XML Schema Definition (XSD) foi apresentado e houve a demonstração de algumas construções de esquemas para validar documentos XML. Com o conteúdo dos três artigos anteriores já é possível construir mecanismos de validações de arquivos XML bem eficazes. A construção de estruturas de validação de documentos XML é menos trabalhosa que desenvolver complexas rotinas de validação via alguma linguagem de programação. Esse é um dos pontos mais poderosos do XML Schema. É sempre mais fácil rever um arquivo XML Schema Definition (XSD) do que rever um módulo de aplicação principalmente se ela envolver componentes, recompilação, versionamento, etc. Ainda assim é possível ganhar um pouco mais de eficiência e velocidade na construção de arquivos XSD utilizando algumas técnicas de reutilização.

Derivação de tipos

A derivação de tipos, por si só, já é uma forma de reutilização. Toda derivação de tipos simples utiliza algum tipo base em sua construção. É possível utilizar inclusive tipos derivados como base para outros tipos. O exemplo abaixo representa a construção de um tipo de dados “Empresa”. Esse tipo de dados é composto por um CNPJ, um nome (Razão Social) e um valor de faturamento todos derivados por restrição. Primeiramente é definido um tipo de dados CNPJ. O tipo tCNPJ é construído a partir do tipo string. O elemento xsd:pattern define que o CNPJ deverá obedecer a máscara XX.XXX.XXX\XXXX-XX onde X será sempre numérico.

<!-- Definição do tipo CNPJ-->
<xsd:simpleType name="tCNPJ">
 <xsd:restriction base="xsd:string">
 <xsd:pattern value="\d{2}.\d{3}.\d{3}/\d{4}-\d{2}"/>
 </xsd:restriction>
</xsd:simpleType>

Os espaços duplicados e tabulações no campo nome devem ser substituídos por um único espaço em branco. O comprimento máximo para a razão social de uma empresa é de 300 caractéres.

<!-- Definição do tipo Razão Social-->
<xsd:simpleType name="tRazaoSocial">
 <xsd:restriction base="xsd:string">
  <xsd:whiteSpace value="replace"/>
  <xsd:maxLength value="300"/>
 </xsd:restriction>
</xsd:simpleType>

O faturamento de uma empresa pode conter até 20 dígitos (sendo 18 dígitos para a parte inteira e 2 dígitos para a parte decimal). É admissível que a empresa não venda, mas não é admissível faturamentos negativos.

<!-- Definição do tipo Faturamento-->
<xsd:simpleType name="tFaturamento">
 <xsd:restriction base="xsd:decimal">
  <xsd:totalDigits value="20"/>
  <xsd:fractionDigits value="2"/>
  <xsd:minInclusive value="0"/>
 </xsd:restriction>
</xsd:simpleType>

Uma empresa para ser considerada “Micro Empresa” precisa ter faturamento anual até R$ 240.000 e para ser considerada “Pequena Empresa” precisa ter faturamento anual até R$ 2,4 milhões. Para criar dois elementos faturamento para essas realidades, pode haver um reaproveitamento do elemento já definido.

<!-- Definição do tipo Faturamento (Micro Empresa)-->
<xsd:simpleType name="tFaturamentoMicroEmpresa">
 <xsd:restriction base="tFaturamento">
  <xsd:maxInclusive value="240000"/>
 </xsd:restriction>
</xsd:simpleType>

<!-- Definição do tipo Faturamento (Pequena Empresa)-->
<xsd:simpleType name="tFaturamentoPequenaEmpresa">
 <xsd:restriction base="tFaturamento">
  <xsd:maxInclusive value="2400000"/>
 </xsd:restriction>
</xsd:simpleType>

Dessa forma as declarações do tipo “tFaturamento” já são automaticamente herdadas para as declarações dos tipos “tFaturamentoMicroEmpresa” e “tFaturamentoPequenaEmpresa”. Ambas contemplam até 20 dígitos (18 para a parte inteira e 2 para a parte decimal) e valores negativos não são permitidos.

Páginas: « Anterior 1 2 3 4 5 6 Próximo »  Próximo: Reutilização de Tipos »


Parabens!!!
Parabéns pelo material!!! Muito prático e didático!
Tiru 80% das minhas dúvidas
Ricardo
Muito bom o artigo!!
Muito bom. Aproveito para tirar uma dúvida. Existe alguma ferramenta que faça o mapeamento (um export) de um modelo de dados para XSD? Um abraço








Um produto Detetive.net | Cursos online