XMLドキュメントには、事実上のまたはそれ以外の標準がありますか?たとえば、タグを記述する「最良の」方法はどれですか。
<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />
同様に、より良い属性の列挙値がある場合
<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>
XMLドキュメントには、事実上のまたはそれ以外の標準がありますか?たとえば、タグを記述する「最良の」方法はどれですか。
<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />
同様に、より良い属性の列挙値がある場合
<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>
回答:
最も一般的な値はcamelCasedだと思います-つまり
<myTag someAttribute="someValue"/>
特に、スペースで列挙型を許可する言語は多くないため(2つの間のマッピングが必要)、コードジェネレーターと混合すると(つまり、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
私にとって、それはプログラミング言語のコードスタイルについて議論するようなものです。スタイルを主張する人もいれば、代替案を擁護する人もいます。私が見た唯一のコンセンサスは、「1つのスタイルを選択し、一貫性があること」です。
多くのXML方言は小文字の名前(SVG、Ant、XHTML ...)のみを使用していることに注意します。
「属性値にスペースを入れない」というルールが適用されません。どういうわけか、「属性に何を入れ、テキストとして何を入れるか」という議論に送られます。
これらは最良の例ではないかもしれませんが、属性にスペースを使用したよく知られたXML形式がいくつかあります。
私はこの慣習に対する議論を完全には理解していません(一部の使用法にのみ適用されるようです)が、少なくとも合法であり、非常に広く使用されています。明らかに、欠点があります。
ああ、そして自動クローズのスラッシュの前にスペースは必要ありません。:-)
要素名にはTitleCaseを、属性にはcamelCaseを使用します。どちらにもスペースはありません。
<AnElement anAttribute="Some Value"/>
余談ですが、私はXMLのベストプラクティスをすばやく検索し、この興味深いリンクを思いつきました。XMLスキーマ:ベストプラクティスです。
私は好む傾向がある小文字またはキャメルケース /言語は、すなわち興味があるかもしれない私は、どんなプラットフォームで変数名として使用することができた値に固執するだろう-タグや属性は、通常、データ値を反映すべきであるので、 -コンテンツではないが回避スペースが、他の2つの形式ができ大丈夫
これは主観的ですが、要素タグに2つの単語がある場合<my_tag>
、区切り文字を使用せずに、単語間にアンダースコアを追加することで読みやすさを高めることができます(例:)。リファレンス:http : //www.w3schools.com/xml/xml_elements.asp。したがって、w3schoolsによると、答えは次のようになります。
<my_tag attribute="some value">
属性値にはスペースを使用できますが、要素タグ名にはスペースを使用できないため、値にアンダースコアやセパレータを使用する必要はありません。
rssはおそらく世界で最も消費されているxmlスキーマの1つであり、camelCasedです。
仕様はこちら:http : //cyber.law.harvard.edu/rss/rss.html
スキーマにノード属性がないことは承知していますが、すべてのノード要素名はcamelCasedです。例えば:
lastBuildDate ManagingEditor pubDate
私は通常、XML命名規則をコードの他の部分の同じ命名規則に合わせます。その理由は、XMLをオブジェクトにロードするときに、その属性と要素名を、プロジェクトで現在使用されているのと同じ命名規則として参照できるためです。
たとえば、JavaScriptがキャメルケースを使用している場合、XMLもキャメルケースを使用します。
マイクロソフトは2つの規則を採用しています。
以下のための構成、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>
例:
<MenuItem Header="Open..." Command="ApplicationCommands.Open">
<MenuItem.Icon>
<Image Source="/Images/folder-horizontal-open.png" />
</MenuItem.Icon>
</MenuItem>
XML命名規則
XML要素は、次の命名規則に従う必要があります。
出典:W3 School
私は良い方法をたくさん探しており、このスレッドや他のスレッドも読んでおり、ハイフンの使用に投票します。
それらは、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">