Pergunta

Nós estamos utilizando o tipo de dados XML no Microsoft SQL Server 2005 para um projeto. Alguns membros da equipe e eu sinto que nós também deve usar XSDs, enquanto membros da outra sensação acampamento que devemos manter o XMLs ad hoc e não tratá-los como "tipos".

Os XMLs são um esforço para trazer estrutura e centralidade de uma série de arquivos de configuração de texto que são um pesadelo de manutenção.

Estamos usando .NET 3.5 / C # e nossas mesas são projetados com os tipos de dados apropriados. Meu argumento é que já estamos "tipos oriented" em nosso pensamento Por que quebrar essa abordagem porque é XML. É por causa da falta de tipos com os arquivos de texto que o problema original ocorreu. Não usar um "tipos" folhas abordagem nos abrem para o mesmo problema.

Pode ser o meu entendimento dos benefícios de esquemas XML estão incorretas. Então, quais são as vantagens e desvantagens do uso de esquemas XML?

Foi útil?

Solução

Infelizmente, mesmo o corpo de autoria de XSD (W3C) entende que XSD é uma tecnologia muito ruim. Dito isto, é intenção não é necessariamente ruim. Um dos principais benefícios do C # é que ele é digitado estaticamente. Estaticamente digitando seus documentos XML dá-lhes os mesmos benefícios. O que é provavelmente o melhor aqui é engenharia reversa suas classes para produzir o esquema usando os atributos de serialização XML. Quando você fizer isso C # criará um leitor de dados personalizado para o seu arquivo XML que irá melhorar drasticamente o desempenho.

Um dos maiores custos de XML é que ele tem que ser seqüência analisada. Quanto mais hipóteses você pode fazer sobre seus arquivos XML (por exemplo, a sua estrutura), melhor o seu desempenho é provável que seja.

Assim, em última análise, como muitas coisas, é a sua bastante de uma necessidade de benefícios de desempenho para justificar os custos em tempo de desenvolvedor. Ou há um desejo forte o suficiente para usar sistemas de tipagem estática para justificar o custo de escrever o XSD.

Em última análise, as suas necessidades de projeto irá ditar o que deve fazer, mas estática-digitação e desempenho são os principais benefícios a considerar.

Outras dicas

Manter um repositório de XMLs sem um XSD é semelhante (na minha opinião) para ter um banco de dados onde todos os tipos são declarados como VARCHAR (n). Você não se importa que tipo de entrada que você começa, você quer apenas entrada.

XSDs garantir que seus XMLs ter o tipo de entrada que você espera. Eles dão estrutura para o seu modelo, a mesma coisa que você está procurando.

Bem, como disse em outros lugares e na pergunta, XSD irá assegurar que você está usando o tipo certo no lugar certo na sua XML e que você vai ter que pensar duas vezes antes de mudar sua estrutura.

Mas XSD é realmente sobre-detalhado, se posso dizer assim. E às vezes é realmente uma bagunça te descrever uma estrutura complexa, com conteúdo condicional.

Felizmente, XSD não é a única maneira de validar um XML, uma abordagem muito mais simples é usar RelaxNG e, especialmente, sua sintaxe compacta que é realmente mais legível do que você jamais poderia imaginar com XSD.

Uma grande vantagem de usar esquemas é que ele ajuda a garantir que todos no projeto concorda quanto à forma como um documento XML deve ser colocado para fora. Além disso, usando esquemas, você pode ativar a validação em seu parser XML, tornando-o mais fácil de dizer quando algum pedaço de código falha porque é dado algum mau XML.

Em contrapartida, a manutenção de esquemas pode ser uma dor, e pode não valer a pena o esforço dependendo do seu projeto.

Se você não tem um esquema, você vai acabar reimplementar todos a validação-se (ou não validar a todos e bater na entrada inválida). XSD analisador / validadores fazer todo esse trabalho para você, e são otimizados e depurado por especialistas em seu domínio. Por que você iria refazer todo esse trabalho sozinho?

XSD de não são o único esquema XML disponíveis. Use http://relaxng.org/ vez. RelaxNG permite expressar o esquema em XML, em vez de necessitando aprender mais uma "linguagem" de dados como tarefas de XSD.

razão importante para o desenvolvimento de XML é que ele permite o uso de dados de mais fontes e em mais maneiras como se tornou um padrão amplamente aceito para troca de dados entre qualquer número de sistemas de computador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top