web-dev-qa-db-ja.com

要素名の大文字と小文字の規則?

XMLの要素の大文字小文字に関するformal推奨事項はありますか?

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>

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

117
Ian Boyd

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

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

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

もしそうなら、XHTML、XSLT、SVG、XProc、RelaxNG、その他に適合することをお勧めします。

87
Pete Kirkham

それは重要ではありませんが、私は常に要素のPascalCaseと属性のキャメルケースに偏っていました:

<Root>
  <ParentElement attributeId="1">
    <ChildElement attributeName="foo" />
  </ParentElement>
</Root>
62
Metro Smurf

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

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

したがって、.Net XMLはProperCasing(XAMLを目撃)を使用する傾向がありますが、他のXMLはcamelCasing、python_conventions、dot.naming、さらにはCOBOL-CONVENTIONSを使用します。 W3Cは、小文字のダッシュ付きビット(XSLTなど)またはちょうど小文字の単語が一緒にスマッシュされたもの(MathMLなど)を好むようです。

私はすべての小文字が好きで、アンダースコアはありません。それは[Shift]キーの使用が少なくなることを意味し、私の指は少し怠けています。 :)

30
lavinio

Metro Smurfの回答に追加します。

National Information Exchange Model(NIEM: http://en.wikipedia.org/wiki/National_Information_Exchange_Model )は次を使用するように言っています:

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

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

23
Koert van Kleef

いくつかの標準で使用されているルールの例については、23ページの「 N/CEFACT XML命名および設計ルール技術仕様バージョン3. 」を参照してください。

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

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

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

13
oluies

上記の私のコメント を展開するには : 'lowercase with hyphens'を使用すると、XSLTで問題が発生します。具体的には、たとえば「year-from-age」と呼ばれるノードを式「year-age」と混同しやすい(たとえば、yearからageを引く)。

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

適切な例:

<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

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

12
Richard Kennard

Googleのスタイルガイド すべての要素名と属性名にcamelCaseを推奨します(おそらく委任することさえあります)。

9
kencordero

XMLの大文字小文字の元の意図は、ハイフンを含む小文字でした。大文字と小文字が区別され、その規則に従う必要はありません。引用はありません、ごめんなさい。

4
Adam Luter

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

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

1
DisgruntledGoat