Existe-t-il une norme, de facto ou autre, pour les documents XML? Par exemple, quelle est la "meilleure" façon d'écrire une balise?
<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />
De même, si j'ai une valeur énumérée pour un attribut qui est mieux
<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>
Je soupçonne que les valeurs les plus courantes seraient camelCased - c'est-à-dire.
<myTag someAttribute="someValue"/>
En particulier, les espaces causent quelques problèmes s'ils sont mélangés avec des générateurs de code (c'est-à-dire pour [dé] sérialiser xml en objets), car peu de langages autorisent des énumérations avec des espaces (exigeant une correspondance entre les deux).
- Element names are case-sensitive
- Element names must start with a letter or underscore
- Element names cannot start with the letters xml(or XML, or Xml, etc)
- Element names can contain letters, digits, hyphens, underscores, and periods
- Element names cannot contain spaces
N'importe quel nom peut être utilisé, aucun mot n'est réservé (sauf xml).
- Create descriptive names, like this: <person>, <firstname>, <lastname>.
- Create short and simple names, like this: <book_title> not like this: <the_title_of_the_book>.
- Avoid "-". If you name something "first-name", some software may think you want to subtract "name" from "first".
- Avoid ".". If you name something "first.name", some software may think that "name" is a property of the object "first".
- Avoid ":". Colons are reserved for namespaces (more later).
- Non-English letters like éòá are perfectly legal in XML, but watch out for problems if your software doesn't support them.
Aucun style de dénomination n'est défini pour les éléments XML. Mais voici quelques-uns couramment utilisés:
- Lower case <firstname> All letters lower case
- Upper case <FIRSTNAME> All letters upper case
- Underscore <first_name> Underscore separates words
- Pascal case <FirstName> Uppercase first letter in each Word
- Camel case <firstName> Uppercase first letter in each Word except the first
Pour moi, c'est comme discuter du style de code pour un langage de programmation: certains plaideront pour un style, d'autres défendront une alternative. Le seul consensus que j'ai vu est: "Choisissez un style et soyez cohérent"!
Je note juste que beaucoup de dialectes XML utilisent simplement des noms en minuscules (SVG, Ant, XHTML ...).
Je ne reçois pas la règle "pas d'espaces dans les valeurs d'attributs". D'une certaine manière, cela envoie au débat "quoi mettre dans les attributs et quoi mettre comme texte?".
Ce ne sont peut-être pas les meilleurs exemples, mais il existe des formats XML bien connus utilisant des espaces dans les attributs:
Je ne comprends pas bien les arguments contre la pratique (semble ne s'appliquer qu'à certains usages) mais c'est légal au moins, et assez largement utilisé. Avec des inconvénients, apparemment.
Oh, et vous n'avez pas besoin d'espace avant la barre oblique à fermeture automatique. :-)
Je préfère TitleCase pour les noms d'éléments et camelCase pour les attributs. Pas de place non plus.
<AnElement anAttribute="Some Value"/>
En passant, j'ai fait une recherche rapide des meilleures pratiques en XML, et j'ai trouvé ce lien plutôt intéressant: schémas XML: meilleures pratiques .
C'est subjectif, mais s'il y a deux mots dans une balise d'élément, la lisibilité peut être améliorée en ajoutant un trait de soulignement entre les mots (par exemple <my_tag>
) au lieu d'utiliser aucun séparateur. Référence: http://www.w3schools.com/xml/xml_elements.asp . Ainsi, selon w3schools, la réponse serait:
<my_tag attribute="some value">
Il n'est pas nécessaire que la valeur utilise un trait de soulignement ou un séparateur, car vous disposez d'espaces dans les valeurs d'attribut mais pas dans les noms de balises d'élément.
J'aurais tendance à privilégier les balises en minuscules ou camelcase et comme les attributs devraient généralement refléter les valeurs des données - pas le contenu - je m'en tiendrai à une valeur qui pourrait être utilisée comme nom de variable dans quelle que soit la plate-forme/langue qui pourrait être intéressée, c'est-à-dire éviter les espaces mais les deux autres formes pourraient être ok
De nombreux dialectes XML centrés sur le document utilisent le latin basique et le tiret. J'ai tendance à aller avec ça.
Les générateurs de code qui mappent XML directement aux identificateurs de langage de programmation sont fragiles et (à l'exception de la sérialisation d'objets naïfs, tels que XAML) doivent être évités dans les formats de documents portables; pour une meilleure réutilisation et longévité des informations, le XML doit essayer de faire correspondre le domaine, pas l'implémentation.
rss est probablement l'un des schémas xml les plus consommés au monde et il est basé sur camelCased.
La spécification est ici: http://cyber.law.harvard.edu/rss/rss.html
Certes, il n'a aucun attribut de nœud dans le schéma, mais tous les noms d'éléments de nœud sont camelCased. Par exemple:
lastBuildDate gérantEditor pubDate
J'aligne normalement la convention de dénomination XML avec la même convention de dénomination dans d'autres parties du code. La raison en est que lorsque je charge le XML dans un objet, ses attributs et noms d'élément peuvent être appelés la même convention de dénomination actuellement utilisée dans le projet.
Par exemple, si votre javascript utilise camelCase, votre XML utilise également camelCase.
Microsoft adopte deux conventions:
Pour configuration, Microsoft utilise camelCase. Regardez le fichier de configuration de Visual Studio. Pour VS2013, il est stocké dans:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config
Exemple:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
Exemple:
<MenuItem Header="Open..." Command="ApplicationCommands.Open">
<MenuItem.Icon>
<Image Source="/Images/folder-horizontal-open.png" />
</MenuItem.Icon>
</MenuItem>
Il n'y a pas de recommandation explicite. Sur la base d'une autre recommandation du W3C, celle pour XHTML , j'ai opté pour les minuscules:
4.2. Les noms d'élément et d'attribut doivent être en minuscules
Les documents XHTML doivent utiliser des minuscules pour tous les noms d'éléments et d'attributs HTML. Cette différence est nécessaire car XML est sensible à la casse, par exemple <li> et <LI> sont des balises différentes.
J'ai beaucoup cherché une bonne approche, lisant également ce fil et quelques autres et je voterais pour en utilisant des tirets .
Ils sont largement utilisés dans ARIA ( https://developer.mozilla.org/de/docs/Web/Barrierefreiheit/ARIA ) qui peuvent être vus dans de nombreux codes sources et sont donc courants. Comme déjà souligné ici, ils sont certainement autorisés, ce qui est également expliqué ici: tilisation de - dans le nom d'élément XML
Également comme avantage secondaire: lorsque vous écrivez du HTML en combinaison avec du CSS, vous avez souvent des classes dont les noms utilisent également des tirets comme séparateur par défaut. Maintenant, si vous avez des balises personnalisées qui utilisent des classes CSS ou des attributs personnalisés pour les balises qui utilisent des classes CSS, alors quelque chose comme:
<custom-tag class="some-css-class">
est plus cohérent et se lit - à mon humble avis - beaucoup plus agréable que:
<customTag class="some-css-class">
Règles de dénomination XML
Les éléments XML doivent suivre ces règles de dénomination:
Source: École W