Quels sont les avantages et les inconvénients de l'utilisation de schémas XML?

StackOverflow https://stackoverflow.com/questions/140355

  •  02-07-2019
  •  | 
  •  

Question

Nous utilisons le type de données XML dans Microsoft SQL Server 2005 pour un projet. Certains membres de l’équipe et moi-même estimons que nous devrions également utiliser des fichiers XSD, tandis que les membres de l’autre camp estiment que nous devons conserver les fichiers XML ad hoc et ne pas les traiter comme des "types".

Les XML sont un effort visant à apporter une structure et une centralité à un certain nombre de fichiers de configuration de texte qui constituent un cauchemar pour la maintenance.

Nous utilisons .NET 3.5 / C # et nos tables sont conçues avec les types de données appropriés. Mon argument est que nous sommes déjà "orientés types". dans notre réflexion, pourquoi casser cette approche parce que c'est XML. C'est à cause du manque de types avec les fichiers texte que le problème d'origine s'est produit. Ne pas utiliser de & types; types " Cette approche nous laisse ouverts au même problème.

Peut-être que ma compréhension des avantages des schémas XML est incorrecte. Quels sont donc les avantages et les inconvénients de l’utilisation de schémas XML?

Était-ce utile?

La solution

Malheureusement, même le corps auteur de XSD (W3C) comprend que XSD est une très mauvaise technologie. Cela dit, l'intention n'est pas nécessairement mauvaise. L'un des principaux avantages de C # est qu'il est typé de manière statique. La saisie statique de vos documents XML leur confère les mêmes avantages. Dans ce cas, le mieux est probablement le reverse engineering de vos classes pour produire le schéma en utilisant les attributs de sérialisation XML. Ceci fait, C # créera un lecteur de données personnalisé pour votre fichier XML, ce qui améliorera considérablement les performances.

L’un des coûts les plus importants du XML est qu’il doit être analysé. Plus vous pouvez formuler d’hypothèses sur vos fichiers XML (leur structure, par exemple), meilleures seront vos performances.

En fin de compte, comme pour beaucoup de choses, leur besoin en performances est suffisant pour justifier les coûts en temps de développement. Ou existe-t-il un désir suffisant d'utiliser des systèmes à typage statique pour justifier le coût de l'écriture du XSD?

En définitive, les besoins de votre projet dicteront ce que vous devez faire, mais le typage statique et les performances sont des avantages majeurs à prendre en compte.

Autres conseils

Conserver un référentiel de fichiers XML sans XSD revient à avoir (à mon avis) une base de données où tous les types sont déclarés en tant que VARCHAR (n). Vous ne vous souciez pas du type d'entrée que vous obtenez, vous voulez juste de l'entrée.

Les fichiers XSD garantissent que vos XML ont le type d’entrée attendu. Ils structurent votre modèle, exactement ce que vous recherchez.

Eh bien, comme indiqué dans les autres posts et dans la question, XSD veillera à ce que vous utilisiez le bon type au bon endroit dans votre XML et qu'il vous faille réfléchir à deux fois avant de changer sa structure.

Mais XSD est vraiment trop bavard, si je peux le dire. Et c’est parfois vraiment un désordre de décrire une structure complexe, avec un contenu conditionnel.

Espérons que XSD n’est pas le seul moyen de valider un code XML, une approche bien plus simple consiste à utiliser RelaxNG . et surtout sa syntaxe compacte qui est vraiment plus lisible que ce que vous pourriez imaginer avec XSD.

L’utilisation de schémas présente un gros avantage: elle permet de s’assurer que toutes les personnes participant au projet s’accordent sur la manière dont un document XML doit être présenté. De plus, en utilisant des schémas, vous pouvez activer la validation dans votre analyseur XML, ce qui permet de savoir plus facilement quand un morceau de code échoue parce qu'il reçoit un mauvais XML.

Inconvénient, la maintenance des schémas peut s’avérer difficile, mais cela peut en valoir la peine, en fonction de votre projet.

Si vous n'avez pas de schéma, vous finirez par réimplémenter vous-même toutes les validations (ou ne pas valider du tout et planter sur une entrée non valide). Les analyseurs / validateurs XSD effectuent tout ce travail pour vous et sont optimisés et débogués par des experts dans leur domaine. Pourquoi voudriez-vous refaire tout ce travail vous-même?

Les fichiers XSD ne sont pas le seul schéma XML disponible. Utilisez http://relaxng.org/ à la place. RelaxNG vous permet d’exprimer le schéma en XML plutôt que de nécessiter l’apprentissage d’un autre "langage" de données. comme le font les XSD.

L’une des principales raisons du développement de XML est qu’il permet l’utilisation de données provenant de davantage de sources et plus encore, car il est devenu une norme largement acceptée pour l’échange de données entre plusieurs systèmes informatiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top