是否存在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"/>
Answers:
我怀疑最常见的价值观会是驼色的-即
<myTag someAttribute="someValue"/>
特别是,如果与代码生成器混合使用,空格会引起一些小故障(即,将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
对我而言,这就像讨论一种编程语言的代码样式一样:有些人会争辩一种样式,而另一些人会捍卫另一种选择。我唯一看到的共识是:“选择一种风格并保持一致”!
我只是注意到,许多XML方言仅使用小写名称(SVG,Ant,XHTML ...)。
我没有“属性值中没有空格”规则。不知何故,它引发了辩论“什么要输入属性,什么要作为文本输入?”。
也许这些不是最好的示例,但是有一些在属性中使用空格的众所周知的XML格式:
我不完全理解反对该做法的论点(似乎仅适用于某些用法),但它至少是合法的,并且被广泛使用。显然有缺点。
哦,您不需要在自动关闭斜杠前加空格。:-)
我喜欢TitleCase作为元素名称,而camelCase作为属性。两者都没有空格。
<AnElement anAttribute="Some Value"/>
顺便说一句,我快速搜索了XML最佳实践,并找到了一个相当有趣的链接:XML模式:最佳实践。
我倾向于使用小写或驼峰标签,并且由于属性通常应反映数据值(而不是内容),因此我会坚持使用一个值,该值在任何平台/语言可能感兴趣的地方都可以用作变量名,即避免使用空格,而另一个两种形式都可以
这是主观的,但是如果元素标签中有两个单词,则可以通过在单词之间添加下划线(例如<my_tag>
)而不使用不使用分隔符来增强可读性。参考:http : //www.w3schools.com/xml/xml_elements.asp。因此,根据w3schools,答案将是:
<my_tag attribute="some value">
该值不必使用下划线或分隔符,因为在属性值中允许使用空格,但在元素标记名称中不允许使用空格。
许多以文档为中心的XML方言使用小写的基本拉丁语和破折号。我倾向于这样做。
直接将XML映射到编程语言标识符的代码生成器很脆弱,并且(在XAML这样的天真的对象序列化除外)应避免使用;为了获得最佳的重用性和信息寿命,XML应该尝试匹配域,而不是实现。
rss可能是世界上使用最广泛的xml模式之一,它是驼峰式的。
规范在这里:http : //cyber.law.harvard.edu/rss/rss.html
授予它在架构中没有节点属性,但所有节点元素名称均为驼峰式。例如:
lastBuildDate管理编辑器pubDate
我通常将XML命名约定与其他代码部分中的相同命名约定对齐。原因是当我将XML加载到Object中时,其属性和元素名称可以称为项目中当前使用的相同命名约定。
例如,如果您的JavaScript使用camelCase,那么您的XML也将使用camelCase。
Microsoft遵循两个约定:
对于配置,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>
例:
<MenuItem Header="Open..." Command="ApplicationCommands.Open">
<MenuItem.Icon>
<Image Source="/Images/folder-horizontal-open.png" />
</MenuItem.Icon>
</MenuItem>
没有明确的建议。根据W3C的其他建议,即XHTML的建议,我选择了小写字母:
4.2。元素和属性名称必须小写
XHTML文档的所有HTML元素和属性名称都必须使用小写。这种差异是必要的,因为XML区分大小写,例如<li>和<LI>是不同的标记。
XML命名规则
XML元素必须遵循以下命名规则:
资料来源:W3学校
我一直在寻找一个好的方法,也正在阅读此主题以及其他一些主题,我会投票赞成使用连字符。
它们在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">