XML要素に標準の命名規則はありますか?[閉まっている]


96

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

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

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

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

2
技術的には、<my.tag />も使用できます。一部のコンテキストでは良い考えではないかもしれません...
PhiLho


いくつかの「基準は」..来店中発見された
user2864740

回答:


46

最も一般的な値はcamelCasedだと思います-つまり

<myTag someAttribute="someValue"/>

特に、スペースで列挙型を許可する言語は多くないため(2つの間のマッピングが必要)、コードジェネレーターと混合すると(つまり、XMLをオブジェクトに[デシリアライズ]するため)、スペースによっていくつかの不具合が発生します。


35
うーん...ベストアンサー...それはまともな答えだと思いますが、それは単なる意見です。なんらかの参照があると便利です。
Hamish Grubijan、2010

4
私は同意しません、ラクダの大文字でXMLを見るのに慣れていません。
Rafa

私はこれが古い答えであることを知っていますが、私が見た新しい Microsoft XMLのほとんどは、この形式の選択に同意しない傾向があります。しかし、その後...そうdot.naming好きIIS
user2246674

4
それは個人的なものだと誰もが言っているように、私は常にXMLSchemaを使用してXMLを定義し、XMLSchemaがこのアプローチに従っているので、私はあなたのアプローチに従います。w3.org/2001/XMLSchema.xsd 。私にとっては、プログラミング言語とは何の関係もありません。相互運用可能なインターフェース標準であるため、XMLを使用します。プログラミング言語は単なる実装の詳細であり、各言語には独自の規則があります。
ダンカーター2013

私の2セント-私はキャメルケースとすべて小文字を見ました。めったにすべて大文字(古いHTML)で、小文字を見たことがある。camelBackを見たことはありません。私はキャメルケースまたは小文字を好みます。ただし、属性はすべて小文字で表示される傾向があります。
キット10、2015年

30

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


13

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

多くのXML方言は小文字の名前(SVG、Ant、XHTML ...)のみを使用していることに注意します。

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

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

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

ああ、そして自動クローズのスラッシュの前にスペースは必要ありません。:-)


スペースに対する議論は、そしてそれは質問で具体的に尋ねられたからであり、値が列挙されて解析をサポートする場合、スペースを含む列挙をサポートする言語は多くありませんが、C / C ++、C#でXMLを使用する私たちの多くは、またはJava(私が使用する言語ですが、これに限定されません)は、属性値を列挙にマップすることがよくあります。その後、リテラルをマップ/辞書に解析するだけです(JavaやC#の場合は簡単です)。最終的には、それが標準というよりも熱意の問題であるように見えることに同意します。私は単に「ローマにいるとき」の哲学に従います。
キット10、2015年

12

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

<AnElement anAttribute="Some Value"/>

余談ですが、私はXMLのベストプラクティスをすばやく検索し、この興味深いリンクを思いつきました。XMLスキーマ:ベストプラクティスです。


8

私は好む傾向がある小文字またはキャメルケース /言語は、すなわち興味があるかもしれない私は、どんなプラットフォームで変数名として使用することができた値に固執するだろう-タグや属性は、通常、データ値を反映すべきであるので、 -コンテンツではないが回避スペースが、他の2つの形式ができ大丈夫


変数/関数名についての思考のための1
ATES Goral

@downvoter:自己紹介をお願いします。
アナカタ

8

これは主観的ですが、要素タグに2つの単語がある場合<my_tag>、区切り文字を使用せずに、単語間にアンダースコアを追加することで読みやすさを高めることができます(例:)。リファレンス:http : //www.w3schools.com/xml/xml_elements.asp。したがって、w3schoolsによると、答えは次のようになります。

<my_tag attribute="some value">

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


2
「ベストネーミングプラクティス」セクション(見解だけではない)のある参照を引用したため、+ 1
Fuhrmanator 2014

2
@Fuhrmanatorその「参照」は、それが何らかの正当化を提供するにもかかわらず、それ自体が意見です。それは決して標準ではありません-そして、(それが以前よりもひどいものではないにせよ)私はw3schoolsを「リファレンス」として推奨したり使用したりしません。より独創的で包括的な情報源があります。
user2864740 14

@ user2864740など?より独創的で包括的な情報源を提供する前に、コメントを完了しました。私の+1のポイントは、OPが標準を要求したことですが、ほとんどの回答は意見を提供します。
Fuhrmanator 2014

この回答は意見を提供するだけであり、w3schoolsへのリンクは無関係であり、そのようなものを削除するものではありません。標準に関しては、実装ルール(RSSなど)または組織ルール(OAGiなど)を参照してください。あるレベルでは、「標準」は特定のアプリケーション/ビジネスレベルでのみ適用されます。w3schoolsリンクは、非常に曖昧な意味での独自の意見/ベストプラクティスのみを提供します(いくつかのヒントを提供し、「ここにいくつかの方法がある」と述べています)。
user2864740 2014

つまり、リンクを含めるだけでは、回答(またはリンクされたリソース)に信頼性はありません。
user2864740 14

7

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

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


3

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

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

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

lastBuildDate ManagingEditor pubDate


2

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

たとえば、JavaScriptがキャメルケースを使用している場合、XMLもキャメルケースを使用します。


1
intraproject仕事のために有用であるが、これはすぐに... XMLは、言語に依存しない交換フォーマットとして使用されたときにブレークダウン
user2864740

プロジェクトのコンポーネントは一貫していますが、プロジェクトが準拠する最初の標準をどのように設計しますか?
Gqqnbig

2

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

  1. 以下のための構成、Microsoftが使用するキャメルケースを。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にUpperCaseを使用しています。HTML(小文字を使用)と区別するためだと思います。

例:

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

1

明示的な推奨はありません。XHTMLの1つであるW3Cからの他の推奨事項に基づいて、小文字を選択しました。

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

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


0

XML命名規則

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

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

出典:W3 School


どのような種類の名前が可能であるかについての漠然とした説明は、どの可能な名前が使用されるべきかについてほとんどガイダンスを与えません。
Samuel Edwin Ward

それらは可能なことのベースラインを定義していますが-正しいですか?
petermeissner 2013

10
もちろん、これは、誰かが「学校で気に入らないように子供に何と名前を付ければよいか」と尋ねられ、「まあ、ここに人間が作り出すことができる音のリストがある」と答えたようなものです。
Samuel Edwin Ward

ええ、でもhtatは実際問題ではなかったですよね?「XML要素に標準の命名規則はありますか?」そして「XMLドキュメントのために、事実上のまたはそれ以外の標準がありますか?」これが正解です。質問の解答の一般的な流れだけでなく、質問に答える人。
petermeissner 2013年

3
これら2つの文の後の残りの質問を無視した場合にのみ、それは答えになります。あなたは「どちらが「最高」であるか「どちらが良いか」に答えようとしませんでした。
Samuel Edwin Ward

0

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

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

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

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

より一貫性があり、読んでいます-私の謙虚な意見では-よりもはるかに良いです:

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.