Je ne savais pas qu'il y avait une différence, mais un collègue a répondu par l'affirmative, bien qu'il ne puisse pas la confirmer. Quelle est la différence le cas échéant?
Réponses
Trop de publicités?XML valide est XML qui réussit la validation sur une DTD.
Un XML bien formé est un XML qui a toutes les balises fermées dans le bon ordre et, s'il a une déclaration, il l'a tout d'abord dans le fichier avec les attributs appropriés.
En d'autres termes, la validité fait référence à la sémantique, la bonne forme à la syntaxe.
Donc, vous pouvez avoir un XML bien formé invalide.
Comme d'autres l'ont dit, XML bien formé est conforme à XML spécification, et valide XML est conforme à un schéma donné.
Une autre façon de le dire est que XML bien formé est syntaxiquement correct (il peut être analysé), tandis que XML valide est sémantiquement correct (il peut être associé à un vocabulaire et de la grammaire).
Un document XML ne peut pas être valide jusqu'à ce qu'il est bien formé. Tous les documents XML sont tenus aux mêmes normes de bien-formation (RFC par le W3). Un document XML peut être valable à l'encontre de certains schémas, des invalides et non contre les autres. Il y a un certain nombre de langages de schéma, dont beaucoup sont eux-mêmes basés sur XML.
Un XML bien formé est un XML qui répond aux exigences syntaxiques du langage. Ne manquez aucune balise de fermeture, ayant toutes vos balises singleton, utilisez <whatever />
au lieu de <whatever>
, et gardez vos balises de fermeture dans le bon ordre.
Un XML valide est un XML qui utilise une DTD et qui répond à toutes ses exigences. Donc, si vous utilisez un attribut de manière incorrecte, vous violez la DTD et n'êtes pas valide.
Tout XML valide est bien formé, mais tous les XML bien formés ne sont pas valides.
XML est bien formé si satisfait aux exigences pour les documents XML définis par les normes, donc les choses comme avoir un seul nœud racine, ayant nœuds correctement imbriquées, tous les nœuds ayant une balise de fermeture (ou en utilisant le nœud vide abréviation d'une barre oblique avant la fermeture de l'angle du support), des attributs d'être cités etc. Être bien formé signifie simplement qu'il respecte les règles de XML et peut donc être analysée correctement.
XML est valide si il sera valide par rapport à une DTD ou un schéma. De toute évidence, cela diffère d'un cas à l'autre - XML qui est valide par rapport à un schéma n'est pas valide à l'encontre d'un autre schéma, même si elle est encore bien formé.
Si XML n'est pas bien formé, il ne peut pas être correctement analysé - analyseurs sera tout simplement jeter une exception ou une erreur. C'est générique, et il n'a pas d'importance ce que votre XML contient. Seulement, une fois analysées, peut-il être vérifié la validité. Ce domaine ou dépendantes du contexte et nécessite une DTD ou un schéma de validation. Pour de simples documents XML, vous ne pouvez pas avoir une DTD ou un schéma, dans ce cas, vous ne pouvez pas savoir si le document XML est valide - le concept de validité ou tout simplement ne s'applique pas dans ce cas. Bien sûr, cela ne signifie pas que vous ne pouvez pas l'utiliser, il signifie simplement que vous ne pouvez pas dire si oui ou non il est valide.