Quelle est la différence entre les données XML et XML de métadonnées?
Je suis à la reconstruction de certains flux XML, donc, je suis à la recherche lors de l'utilisation d'éléments et quand utiliser les attributs XML.
Plusieurs sites ont dit "Données par des éléments de métadonnées dans les attributs."
Alors, quelle est la différence entre les deux?
Nous allons prendre un exemple de W3Schools:
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Si la date de séjour comme un attribut de l'élément de note? Ou est-il plus logique d'aller dans son propre élément?
<date>12/11/2002</date>
Ou ne fait-elle sens pour qu'il soit séparé en plusieurs éléments?
<date>
<day>12</day>
<month>11</month>
<year>2002</year>
</date>
Cette question est le meilleur argument pour le JSON que j'ai jamais entendu.
Pourquoi est-ce? Comment feriez-vous la structure de l'exemple d'utilisation de JSON? Jusqu'à présent j'ai de la suite, et je ne sais pas où je mettais les attributs, comme une note id: "notes": [{ "en": Tove", "de": "Jani", "rubrique": "Rappel", "carrosserie": "Ne m'oubliez pas ce week-end!" }]
quel est le problème avec les "notes": [{"id":27, "de":"Tove", ...}] ?
Rien de mal à cela. Mais, il est intéressant de noter que vous perdre de la distinction des attributs d'éléments, et de vous perdre la capacité de distinguer entre les attributs et les éléments lors de la traduction de retour à XML. Pour ma part, je suis obligé d'utiliser XML, comme nous avons déjà des personnes en s'appuyant sur les flux, de sorte que JSON est un non-choix.
Pourquoi est-ce? Comment feriez-vous la structure de l'exemple d'utilisation de JSON? Jusqu'à présent j'ai de la suite, et je ne sais pas où je mettais les attributs, comme une note id: "notes": [{ "en": Tove", "de": "Jani", "rubrique": "Rappel", "carrosserie": "Ne m'oubliez pas ce week-end!" }]
quel est le problème avec les "notes": [{"id":27, "de":"Tove", ...}] ?
Rien de mal à cela. Mais, il est intéressant de noter que vous perdre de la distinction des attributs d'éléments, et de vous perdre la capacité de distinguer entre les attributs et les éléments lors de la traduction de retour à XML. Pour ma part, je suis obligé d'utiliser XML, comme nous avons déjà des personnes en s'appuyant sur les flux, de sorte que JSON est un non-choix.
OriginalL'auteur Chad Johnson | 2010-11-17
Vous devez vous connecter pour publier un commentaire.
À la suite de la "Data va, par des éléments de métadonnées dans les attributs.", J'aurais fait la Date à laquelle un élément enfant. Vous n'avez pas besoin de le décomposer en jour, le mois et l'année, parce que je pense qu'il y a un moyen de spécifier dans un XSD qu'un élément doit être un type de Date. Je pense qu'un exemple de "métadonnées" serait ici une
noteID
champ ou peut-être unnoteType
. Exemple:Mise à JOUR: Comme beaucoup d'autres l'ont souligné, il peut être assez subjectif. J'essaie de séparer les deux par la façon dont ils seront utilisés. Les données seront généralement présenté à l'utilisateur, les métadonnées de contrôle de la présentation et peut être utilisé en interne pour d'autres fins. Mais il y a toujours des exceptions...
"Les données seront généralement présenté à l'utilisateur, les métadonnées de contrôle de la présentation et peut être utilisée en interne pour d'autres fins" -- j'en suis arrivé à la même conclusion après de plus amples recherches. De données (éléments) est potentiellement affiché à l'utilisateur; les métadonnées (attributs) est nécessaire pour plus d'informations sur les données et n'est pas affiché à l'utilisateur. Attribut exemples: type="text"; version="1.0"; xmlns="..."; scheme="http://..."; .
OriginalL'auteur FrustratedWithFormsDesigner
La distinction entre les données et les métadonnées sont presque entièrement subjective. Un homme de données est une autre méta-données. Les "métadonnées dans les attributs de la règle" est née de la majoration du monde, où une règle de pouce, c'est, si vous supprimez toutes les balises, et il suffit de laisser le texte, il doit être raisonnable de document. Cela signifiait que les attributs pouvant être éliminée, et les éléments essentiels. Si vous affichez des données XML dans une incompréhension navigateur, il va être traité de cette façon.
Mais votre XML (et la plupart des XML de ces jours) ne sera pas affichée à l'utilisateur dans une incompréhension du navigateur, de sorte que vous pouvez utiliser de meilleures règles pour la conception de vos XML.
Par exemple, vous pouvez avoir plusieurs éléments avec le même nom, mais pas plusieurs attributs. Et les espaces sont ignorés dans les attributs, mais pas dans les éléments.
OriginalL'auteur Ned Batchelder
Il y a divergence de vues sur les principes à utiliser lorsque vous décidez d'utiliser un attribut ou un élément pour un élément de données. Voir, par exemple,ce vieil article d'IBM, qui dispose d'un tas de principes proposés, puis décore l'ensemble de l'article avec un géant de la mise en garde qui dit "il y a beaucoup d'exceptions et ces principes ne sont pas destinés à être prescriptif" (pour l'essentiel).
Je pense que le principal c'est d'être cohérent. Être cohérent dans votre propre monde, si grande est. Votre "monde" pourrait être un seul schéma dans lequel vous devez être cohérent dans votre démarche. Chaque élément à l'intérieur de ce schéma doit être philosophiquement cohérente. Ou de votre monde pourrait être un ensemble de schéma, ou peut-être tous les documents de XML émis par une société en particulier, ou même la totalité du schéma XML utilisé par une industrie ou d'un groupe de la technologie.
Maintenant, concernant les exemples que vous avez offert:
...cela semble incohérent parce que seulement une partie des données est pris en compte, et il ne semble pas être une bonne raison de le faire.
Mieux si tous les éléments étaient des attributs ou tous ont été des éléments. Une exception: le longuets de l'élément de corps devrait probablement toujours être un élément. Ce qui se sent le droit pour moi:
De mettre le corps dans un attribut fait mal la lisibilité, et qui recommande de mettre le corps dans un élément.
Garder à l'esprit que l'espace blanc peut être effondrée dans les valeurs d'attribut (source: IBM article que j'ai cité), l'unité de la règle qui découle de cela, c'est que si l'espace est significative, alors vous devez utiliser un élément.
Maintenant, si la position du fragment de xml est quelque chose comme l'objet de l'email, je serais probablement le facteur qui dans un élément, puisque les sujets peuvent être longues.
Comme pour votre question concernant le mois/jour/année de la date, oui, facteur de ces choses si vous avez besoin d'un accès facile à ces données dans les outils de traitement du document XML. Il est plus facile de rechercher toutes les notes d'avant 2009, avec une instruction xpath qui n'est pas pour faire de la chaîne de l'analyse puis de la chaîne de conversion de numéro, si vous voyez ce que je veux dire. D'autre part, si votre utilisation du XML n'exige pas que vous ne sélectionne ou des recherches sur ces données individuelles (jour, mois, année), et les garder ensuite regroupées dans une forme lisible par l'homme comme dans l'original de votre.
tl;dr: Il y a quelques règles fermes. Tant que votre utilisation des éléments et des attributs est conforme, il sera facile pour les autres développeurs et des outils pour comprendre et utiliser.
OriginalL'auteur Cheeso