web-dev-qa-db-ja.com

XML要素に標準の命名規則はありますか?

XMLドキュメントには、事実上のまたはその他の標準がありますか?たとえば、タグを記述する「最良の」方法はどれですか?

<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />

同様に、より良い属性の列挙値がある場合

<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>
90
tpower

最も一般的な値はcamelCasedであると思われます-つまり.

<myTag someAttribute="someValue"/>

特に、コードジェネレーターと組み合わせた場合(つまり、XMLをオブジェクトに[de] serializeする場合)、スペースによっていくつかの不具合が発生します。

42
Marc Gravell

XML命名規則

XML要素は、次の命名規則に従う必要があります。

    - 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

任意の名前を使用でき、単語は予約されていません(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.

命名スタイル

XML要素には、命名スタイルは定義されていません。ただし、一般的に使用されるものは次のとおりです。

    - 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

参照 http://www.w3schools.com/xml/xml_elements.asp

25
Farhad Maleki

私にとって、それはプログラミング言語のコードスタイルを議論するようなものです。スタイルについて議論する人もいれば、代替案を擁護する人もいます。私が見た唯一のコンセンサスは、「1つのスタイルを選択し、一貫性を保つこと」です。

多くのXML方言では、小文字の名前(SVG、Ant、XHTML ...)を使用しているだけです。

「属性値にスペースがありません」というルールがありません。どういうわけか、「属性に何を入れて、テキストとして何を入れるか」という議論を送ります。
これらは最良の例ではないかもしれませんが、属性にスペースを使用するいくつかのよく知られたXML形式があります。

  • XHTML、特にクラス属性(2つ以上のクラスを配置できます)、そしてもちろんaltおよびtitle属性。
  • SVG。たとえば、パスタグのd属性。
  • 両方ともスタイル属性...

私はこの慣行に対する議論を完全には理解していませんが(一部の使用法にのみ適用されるようです)、少なくとも合法であり、非常に広く使用されています。欠点があるようです。

ああ、自動終了スラッシュの前にスペースは必要ありません。 :-)

13
PhiLho

要素名にはTitleCaseを、属性にはcamelCaseを使用します。どちらにもスペースはありません。

<AnElement anAttribute="Some Value"/>

余談ですが、XMLのベストプラクティスを簡単に検索して、このかなり興味深いリンクを見つけました: XMLスキーマ:ベストプラクティス

12
Raithlin

主観的ですが、要素タグに2つの単語がある場合、単語間にアンダースコアを追加することで読みやすさが向上します(例:<my_tag>)セパレータを使用しない代わりに。参照: http://www.w3schools.com/xml/xml_elements.asp 。したがって、w3schoolsによると、答えは次のようになります。

<my_tag attribute="some value">

属性値にはスペースを使用できますが、要素タグ名には使用できないため、値にアンダースコアやセパレータを使用する必要はありません。

8
alistair

小文字またはキャメルケースタグを好む傾向があり、属性は通常、コンテンツではなくデータ値を反映する必要があるため、変数名として使用できる値に固執しますどんなプラットフォーム/言語でも興味があるかもしれません。つまり、スペースを避けるですが、他の2つの形式couldは大丈夫です

8
annakata

多くのドキュメント中心のXML方言は、小文字の基本的なラテン語とダッシュを使用します。私はそれで行く傾向があります。

XMLをプログラミング言語識別子に直接マップするコードジェネレーターは脆弱であり、XAMLなどの単純なオブジェクトシリアル化を除き、ポータブルドキュメント形式では使用しないでください。最大限の再利用と情報の長寿命のために、XMLは実装ではなくドメインとの一致を試みる必要があります。

7
Pete Kirkham

rssは、おそらく世界で最も消費されているxmlスキーマの1つであり、camelCasedです。

仕様はこちら: http://cyber.law.harvard.edu/rss/rss.html

スキーマにノード属性がないことは認められますが、すべてのノード要素名はcamelCasedです。例えば:

lastBuildDate ManagingEditor pubDate

3
evermeire

私は通常、XMLの命名規則を、コードの他の部分の同じ命名規則に合わせます。その理由は、XMLをオブジェクトにロードすると、その属性と要素名が、プロジェクトで現在使用されているのと同じ命名規則として参照できるためです。

たとえば、javascriptがcamelCaseを使用している場合、XMLもcamelCaseを使用します。

2
micksatana

マイクロソフトは次の2つの規則を採用しています。

  1. 構成の場合、MicrosoftはcamelCaseを使用します。 Visual Studioの構成ファイルを見てください。 VS2013の場合、次の場所に保存されます。

    C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config

例:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
  1. Microsoftは、XAMLにもpperCaseを使用しています。 HTML(小文字を使用)と区別することだと思います。

例:

<MenuItem Header="Open..." Command="ApplicationCommands.Open">
    <MenuItem.Icon>
        <Image Source="/Images/folder-horizontal-open.png" />
    </MenuItem.Icon>
</MenuItem>
2
Jeson Martajaya

明示的な推奨事項はありません。 [〜#〜] xhtml [〜#〜] のW3Cの他の推奨に基づいて、小文字を選択しました。

4.2。要素名と属性名は小文字でなければなりません

XHTMLドキュメントでは、すべてのHTML要素および属性名に小文字を使用する必要があります。 XMLでは大文字と小文字が区別されるため、この違いが必要です。 <li>と<LI>は異なるタグです。

1
Diego Menta

私は良いアプローチをたくさん探しており、このスレッドや他のスレッドも読んでいて、ハイフンを使用してに投票します

これらはARIAで広く使用されています( https://developer.mozilla.org/de/docs/Web/Barrierefreiheit/ARIA )。これは多くのソースコードで見られるため、一般的です。ここで既に指摘したように、それらは確かに許可されています。これについてもここで説明します。 XML要素名で-を使用

また、副次的な利点として、HTMLをCSSと組み合わせて記述する場合、デフォルトで同様にセパレーターとしてハイフンを使用する名前のクラスがあります。 CSSクラスを使用するカスタムタグ、またはCSSクラスを使用するタグのカスタム属性がある場合、次のようになります。

<custom-tag class="some-css-class">

より一貫性があり、読む-私の謙虚な意見では-

<customTag class="some-css-class">

0
IceFire

XML命名規則

XML要素は、次の命名規則に従う必要があります。

  • 名前には文字、数字、その他の文字を含めることができます
  • 名前は数字または句読点文字で始めることはできません
  • 名前は文字xml(またはXML、Xmlなど)で始めることはできません
  • 名前にスペースを含めることはできません任意の名前を使用できます。単語は予約されていません。

ソース: W3 School

0
petermeissner