Existe-t-il des recommandations formelles sur la casse des éléments en XML?
Je sais que XHTML utilise des noms d'éléments en minuscules (par opposition à HTML qui utilise canoniquement les majuscules mais n'est pas sensible à la casse.)
Mais je parle de XML pour le contenu générique.
<customer>
<accountnumber>619</accountnumber>
<name>Shelby Lake</name>
</customer>
<customer>
<accountNumber>619</accountNumber>
<name>Shelby Lake</name>
</customer>
<Customer>
<AccountNumber>619</AccountNumber>
<Name>Shelby Lake</Name>
</Customer>
<CUSTOMER>
<ACCOUNTNUMBER>619</ACCOUNTNUMBER>
<NAME>Shelby Lake</NAME>
</CUSTOMER>
Note: Je recherche des directives citées plutôt que des opinions. Mais l'avis avec le plus de votes peut être considéré comme une ligne directrice.
La plupart des normes XML provenant du W3C ont tendance à utiliser des minuscules avec des tirets.
Il existe une distinction philosophique entre voir XML comme un format pour les documents neutres de plate-forme, que les normes W3C tentent d'encourager, et les langages tels que XAML qui voient XML comme une sérialisation d'un graphique d'objet spécifique à une plate-forme.
Si vous n'utilisez pas XML en tant que format de document neutre pour la plate-forme, mais en tant que sérialisation spécifique à l'application, vous pourriez tout aussi bien vous épargner de la peine et avoir une correspondance 1: 1 entre les noms XML et les noms spécifiques à la plate-forme. Mais presque tout autre format de graphique d'objet est meilleur que XML à cet effet.
Si vous l'êtes, vous voudrez peut-être vous adapter à XHTML, XSLT, SVG, XProc, RelaxNG et le reste.
Ce n'est pas important, mais j'ai toujours aimé PascalCase pour les éléments et camelCase pour les attributs:
<Root>
<ParentElement attributeId="1">
<ChildElement attributeName="foo" />
</ParentElement>
</Root>
Il n'y a pas de recommandation formelle.
Étant donné que XML a été conçu dans le double but de tenir des documents et échanger des informations entre des systèmes disparates, il a été conçu de manière à pouvoir faire correspondre le applications l'utilisant.
Donc .Net XML a tendance à utiliser ProperCasing (témoin XAML), tandis que d'autres XML utiliseront camelCasing, python_conventions, dot.naming et même COBOL-CONVENTIONS. Le W3C semble aimer les minuscules avec des tirets-un peu (par exemple XSLT) ou simplement des mots de passe écrasés ensemble (par exemple MathML).
J'aime tous les minuscules et aucun trait de soulignement, car cela signifie moins d'utilisation de la touche [Maj], et mes doigts sont un peu paresseux. :)
Pour ajouter à la réponse de Metro Smurf.
Le modèle national d'échange d'informations (NIEM: http://en.wikipedia.org/wiki/National_Information_Exchange_Model ) dit d'utiliser:
Le NIEM constitue une bonne option lorsque vous cherchez à vous conformer à une norme.
Voir Spécification technique des règles de dénomination et de conception XML UN/CEFACT version 3. page 23 pour des exemples de règles utilisées dans plusieurs normes.
Particularités (à partir de la page 23 de la version 3.0 du 17 décembre 2009):
Pour développer mon commentaire ci-dessus : l'utilisation de 'minuscules avec des tirets' a quelques problèmes dans XSLT. Plus précisément, il est facile de confondre un nœud appelé, par exemple, `` année à partir de l'âge '' avec une formule `` année à l'âge '' (par exemple, soustraire l'âge de l'année).
Comme le souligne @KarlKieninger, ce n'est qu'un problème au niveau humain et non pour l'analyseur XSLT. Cependant, comme cela ne produira souvent pas d'erreur , l'utilisation de "minuscules avec des tirets" comme standard est source de problèmes, à mon humble avis.
Quelques exemples pertinents:
<a>1</a><b>1</b>
<xsl:value-of select="a+b"/>
outputs 2, as expected
<a>1</a><b>1</b>
<xsl:value-of select="a-b"/>
DOES NOT ERROR, BUT OUTPUTS NOTHING AT ALL
Dans le code ci-dessus, vous devez mettre au moins un espace avant un opérateur de soustraction, mais il n'y a pas une telle exigence pour un opérateur d'addition.
<a-b>1</a-b><c>1</c>
<xsl:value-of select="a-b -c"/>
outputs 0, as expected
Mais notez à quel point ce qui est déroutant est de lire!
<a>1</a><a-b>3</a-b><b>2</b>
<xsl:value-of select="a-b"/>
outputs 3
<a>1</a><a-b>3</a-b><b>2</b>
<xsl:value-of select="a -b"/>
outputs -1
La présence d'un seul espace modifie la sortie ci-dessus, mais aucune des variantes n'est une erreur.
guide de style de Google recommande (peut-être même des mandats) camelCase pour tous les noms d'élément, ainsi que les noms d'attribut.
L'intention d'origine pour la casse XML était en minuscules avec des tirets. Il est sensible à la casse et ne vous oblige pas à suivre cette convention - vous pouvez donc faire ce que vous voulez. Je n'ai pas de citations, désolé.
Je ne dirais pas que HTML utilise "en canon" les majuscules. Je pense qu'à l'origine, les majuscules étaient utilisées pour séparer visuellement le HTML du contenu plus facilement. Avec la coloration syntaxique de nos jours, ce n'est tout simplement pas nécessaire.
Je vire vers les minuscules, avec des tirets si nécessaire (plus rapide à taper aussi). Le mixage de cas en XML me semble juste mal.