O que é o formato de ficheiro XSD?
Um arquivo .xsd contém uma descrição formal dos elementos de um documento XML - definições de dados salvas em formato de texto XML. Ele define um conjunto de regras que os arquivos XML devem seguir para serem considerados documentos XML válidos; um analisador de validação rejeita qualquer documento que quebre essas regras.
Arquivos .xsd não possuem um identificador de Tipo de Mídia de Internet exclusivo - eles compartilham o mesmo tipo que o XML comum: application/xml ou text/xml. Os arquivos normalmente começam com uma declaração XML (<?xml version="1.0"?>) e um elemento raiz <xs:schema> vinculado ao namespace http://www.w3.org/2001/XMLSchema. Os dados XSD podem ser organizados em namespaces. Os principais componentes do esquema são:
- Declarações de elementos,
- Declarações de atributos,
- Tipos de dados - simples ou complexos, baseados em restrições, listas de seleção ou tipos primitivos,
- Grupos reutilizáveis de elementos ou atributos (análogos a macros).
A especificação XSD foi desenvolvida em 2001 com a ajuda do W3C (World Wide Web Consortium). O XSD oferece mais recursos do que o formato de definição de documento .dtd semelhante, incluindo dados tipados e suporte a namespace. Arquivos de descrição de serviço web, como .wsdl, comumente incorporam definições de tipo XSD para suas estruturas de mensagem. O documento de especificação XSD é dividido em três partes:
- Parte 0. Primer - contém uma descrição geral do padrão e conceitos básicos, comumente consultada por usuários menos técnicos que trabalham com
.xsd, - Parte 1. Estruturas,
- Parte 2. Tipos de Dados.
As Partes 1 e 2 têm muitas páginas e são escritas em linguagem técnica. Uma segunda versão da especificação foi lançada em 2004, e o XSD 1.1 foi aprovado pelo W3C em 2012, adicionando asserções e atribuição de tipo condicional. Arquivos XSD são usados para armazenar metadados para documentos XML, mas também podem ser usados por desenvolvedores para gerar código ou descrições de documentos em formato legível por humanos.
Segurança e proteção
RISCO: LOWUm XSD é texto simples e não pode executar código, portanto, abrir um para leitura é seguro. Os únicos riscos reais são indiretos: <xs:import>/<xs:include> podem puxar esquemas externos (ataques de entidade externa do tipo XXE visam o ANALISADOR XML, não o esquema em si), portanto, valide XML não confiável com a expansão de entidades e buscas externas desativadas. A <xs:documentation> incorporada no arquivo pode revelar detalhes internos do sistema ou campos, o que é uma consideração de divulgação de informações em vez de um risco de malware.
Detalhes do formato
em resumoProgramas que abrem arquivos XSD
Detalhes técnicos
especificação profunda| Tipo de formato de arquivo | Documento XML de texto simples (codificado em UTF-8) |
| Tipo MIME | application/xml ou text/xml (compartilhado com todos os arquivos XML; não existe um tipo MIME específico para XSD) |
| Elemento raiz | <xs:schema> ou <xsd:schema>, vinculado ao namespace W3C http://www.w3.org/2001/XMLSchema |
| Assinatura do arquivo | Nenhuma (texto simples); os arquivos convencionalmente abrem com uma declaração XML <?xml version="1.0"?> |
| Convenção de prefixo de namespace | xs: ou xsd: (ambos são válidos; xs: é a escolha moderna mais comum) |
| Sistema de tipos integrado | Mais de 44 tipos primitivos e derivados: string, integer, decimal, dateTime, boolean, base64Binary, anyURI e outros |
| Derivação de tipo | Tipos complexos suportam derivação por restrição ou extensão; tipos simples por restrição, lista ou união |
| Restrições de validação | Modelo de conteúdo (sequência, escolha, todos), cardinalidade via minOccurs/maxOccurs e facetas como padrão, comprimento e enumeração |
| Suporte a namespace | O atributo targetNamespace declara o namespace do esquema; as diretivas xs:import, xs:include e xs:redefine combinam esquemas |
| Mecanismo de anotação | <xs:annotation> contendo <xs:documentation> para texto legível por humanos e <xs:appinfo> para metadados legíveis por máquina |
| Adições do XSD 1.1 | Asserções (xs:assert), atribuição de tipo condicional (xs:alternative) e restrições de coocorrência relaxadas |
| Comparado ao DTD | Substitui o DTD para validação tipada e ciente de namespaces; o DTD não possui tipos de dados nem suporte a namespace |
| Comparado ao RELAX NG | Mais amplamente suportado em ferramentas do que o .rng; o RELAX NG é mais simples, mas carece de herança de tipo XSD |
| Integração de ferramentas | Suportado pelo Visual Studio, VS Code e Altova XMLSpy para preenchimento automático, validação em tempo real e geração de código orientada por esquema |
| Contextos de uso comuns | Validação de arquivos de configuração, serviços web SOAP/WSDL, contratos de intercâmbio de dados, formatos de documentos de escritório OOXML |
| Lançado | 2001 (W3C XML Schema 1.0 Recommendation); 1.1 in 2012 |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.w3.org |
Conversões de XSD
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos XSD.