125

XML の要素のケーシングに関する正式な推奨事項はありますか?

XHTML は小文字の要素名を使用することを知っています (標準的に大文字を使用するが大文字と小文字を区別しない HTML とは対照的です)。

しかし、私が話しているのは一般的なコンテンツのための XML です。

小文字:

<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>

注:意見ではなく、引用されたガイドラインを探しています。ただし、賛成票が最も多い意見はガイドラインと見なすことができます。

4

10 に答える 10

91

W3Cに由来するほとんどのXML標準は、ハイフン付きの小文字を使用する傾向があります。

XMLをW3C標準が推奨しようとしているプラ​​ットフォームニュートラルドキュメントの形式と見なすのと、XMLをプラットフォーム固有のオブジェクトグラフのシリアル化と見なすXAMLなどの言語との間には哲学的な違いがあります。

XMLをプラットフォームに依存しないドキュメント形式としてではなく、アプリケーション固有のシリアル化として使用している場合は、面倒な作業を省き、XML名とプラットフォーム固有の名前を1:1で対応させることもできます。しかし、他のほとんどのオブジェクトグラフ形式は、その目的のためにXMLよりも優れています。

もしそうなら、XHTML、XSLT、SVG、XProc、RelaxNGなどに適合したいと思うかもしれません。

于 2009-07-02T15:18:27.737 に答える
31

正式な推奨事項はありません。

XMLは、ドキュメントの保持異種システム間での情報交換という2つの目的で設計されているため、XMLを使用するアプリケーションと一致するように設計されています。

したがって、.Net XMLはProperCasing(witness XAML)を使用する傾向がありますが、他のXMLはcamelCasing、python_conventions、dot.naming、さらにはCOBOL-CONVENTIONSを使用します。W3Cは、ダッシュ付きの小文字(XSLTなど)または小文字の単語をまとめたもの(MathMLなど)が好きなようです。

私はすべて小文字が好きで、アンダースコアはありません。これは、[Shift]キーの使用が少なくなり、指が少し怠惰になるためです。:)

于 2009-07-02T14:06:18.553 に答える
25

メトロスマーフの答えに追加します。

National Information Exchange Model(NIEM: http: //en.wikipedia.org/wiki/National_Information_Exchange_Model)は、次のように使用します。

  • 要素の上部キャメルケース(PascalCase)。
  • (下)属性のキャメルケース。

NIEMは、いくつかの標準に準拠することを検討している場合に適したオプションです。

于 2012-05-19T11:30:47.833 に答える
13

いくつかの規格で使用されているルールの例については、UN /CEFACTXML命名および設計ルール技術仕様バージョン3.0の23ページを参照してください。

詳細(2009年12月17日付けのバージョン3.0の23ページから):

  • 属性の命名にはLowerCamelCase(LCC)を使用する必要があります。
  • 要素とタイプの命名には、UpperCamelCase(UCC)を使用する必要があります。
  • 概念自体が複数形でない限り、要素、属性、および型の名前は単数形でなければなりません。

他のリンク、スウェーデンのサイト

于 2010-06-29T16:46:46.087 に答える
13

上記の私のコメントを拡張するには、「小文字とハイフン」の使用には、XSLT でいくつかの問題があります。具体的には、たとえば「年から年」と呼ばれるノードを、「年 - 年」という式と混同しがちです (たとえば、年から年を引く)。

@KarlKieninger が指摘しているように、これは人間レベルの問題であり、XSLT パーサーの問題ではありません。ただし、これは多くの場合エラーを生成しないため、「ハイフン付きの小文字」を標準として使用すると問題が発生します.

関連する例:

<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

上記のコードでは、減算演算子の前に少なくとも 1 つのスペースを入れる必要がありますが、加算演算子にはそのような要件はありません。

<a-b>1</a-b><c>1</c>
<xsl:value-of select="a-b -c"/>
outputs 0, as expected

しかし、上記を読むといかに混乱するかに注意してください!

<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

単一のスペースが存在すると、上記の出力が変更されますが、どちらのバリアントもエラーではありません。

于 2013-09-21T03:26:44.320 に答える
13

Google のスタイル ガイドでは、すべての要素名と属性名に camelCase を推奨しています (おそらく義務付けさえしています)。

すべての名前は を使用する必要がありlowerCamelCaseます。つまり、最初は小文字で始まり、名前内の新しい単語はそれぞれ最初の大文字で始まります。

理論的根拠: 単一のスタイルを採用すると一貫性が得られます。これは大文字と小文字が区別されるため、名前を参照するときに役立ちます。覚えておく必要はありません。Java スタイルと一致し、他の言語は自動名前変換を使用して処理できます。

于 2013-04-24T17:56:12.233 に答える
4

XML大文字小文字の本来の目的は、ハイフンを使用した小文字でした。大文字と小文字が区別され、その規則に従う必要はありません。したがって、好きなことを行うことができます。引用はありません、ごめんなさい。

于 2009-07-02T15:22:59.303 に答える
1

HTML が「標準的に」大文字を使用しているとは言いません。もともと大文字は、HTML をコンテンツから視覚的に分離しやすくするために使用されていたと思います。今日の構文の強調表示では、それは必要ありません。

私は小文字に向きを変え、必要に応じてダッシュを付けます (入力も速くなります)。XML で大文字と小文字を混在させることは、私には間違っているように感じます。

于 2009-07-06T12:54:07.517 に答える
-2

キャメルケースに一票。

引用された例に関しては、おそらくこの質問は、人々が引用するリンクに来る可能性があります.

于 2009-07-02T13:53:50.013 に答える