是否有XML元素的标准命名约定?

时间:2009-01-14 10:22:21

标签: xml coding-style naming-conventions

XML文档是否有任何标准,事实上或其他标准?例如哪个是编写标签的“最佳”方式?

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

同样,如果我有一个更好的属性的枚举值

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

13 个答案:

答案 0 :(得分:42)

我怀疑最常见的值是camelCased - 即

<myTag someAttribute="someValue"/>

特别是,如果与代码生成器混合(即将[de]序列化xml到对象),空格会引起一些小故障,因为没有多少语言允许带空格的枚举(要求两者之间的映射)。

答案 1 :(得分:26)

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

答案 2 :(得分:13)

对我来说,就像讨论编程语言的代码风格一样:有些人会争论一种风格,有些人则会捍卫另一种选择。我看到的唯一共识是:“选择一种风格并保持一致”!

我注意到许多XML方言只使用小写名称(SVG,Ant,XHTML ......)。

我没有得到“属性值中没有空格”规则。不知何故,它向辩论发出了“将属性放入什么以及放置什么作为文本?” 也许这些不是最好的例子,但有一些众所周知的XML格式在属性中使用空格:

  • XHTML,特别是类属性(可以放两个或更多类),当然还有alt和title属性。
  • SVG,例如路径标记的d属性。
  • 两者都有样式属性......

我并不完全理解反对这种做法的论点(似乎只适用于某些用法)但它至少是合法的,而且使用得相当广泛。有缺点,显然。

哦,在自动关闭斜线之前你不需要空格。 : - )

答案 3 :(得分:12)

我赞成使用TitleCase作为元素名称,而使用camelCase作为属性。两者都没有空格。

<AnElement anAttribute="Some Value"/>

顺便说一下,我快速搜索了XML中的最佳实践,并提出了这个相当有趣的链接:XML schemas: Best Practices

答案 4 :(得分:8)

我倾向于支持小写 camelcase 标记,因为属性通常应该反映数据值 - 而不是内容 - 我会坚持使用可以用作任何平台/语言可能感兴趣的变量名称,即避免空格,但其他两种形式可以可以

答案 5 :(得分:8)

这是主观的,但如果元素标签中有两个单词,则可以通过在单词之间添加下划线(例如<my_tag>)而不是不使用分隔符来增强可读性。参考:http://www.w3schools.com/xml/xml_elements.asp。所以根据w3schools,答案是:

<my_tag attribute="some value">

该值不需要使用下划线或分隔符,因为在属性值中允许使用空格,但在元素标记名称中不允许使用空格。

答案 6 :(得分:7)

许多以文档为中心的XML方言使用小写基本拉丁语和破折号。我倾向于这样做。

将XML直接映射到编程语言标识符的代码生成器很脆弱,并且在可移植文档格式中应避免(除了简单的对象序列化,例如XAML);为了最好地重用和信息寿命,XML应该尝试匹配域,而不是实现。

答案 7 :(得分:3)

rss可能是世界上使用最多的xml架构之一,它是camelCased。

规格在这里:http://cyber.law.harvard.edu/rss/rss.html

当然,它在模式中没有节点属性,但所有节点元素名称都是camelCased。例如:

lastBuildDate 总编辑 pubdate的

答案 8 :(得分:2)

我通常将XML命名约定与代码的其他部分中的相同命名约定对齐。原因是当我将XML加载到Object时,它的属性和元素名称可以被称为当前在项目中使用的相同命名约定。

例如,如果您的javascript使用camelCase,那么您的XML也使用camelCase。

答案 9 :(得分:2)

Microsoft采用两种惯例:

  1. 对于配置,Microsoft使用 camelCase 。查看Visual Studio配置文件。对于VS2013,它存储在:

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

  2. 示例:

    <startup useLegacyV2RuntimeActivationPolicy="true">
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    
    1. Microsoft还将 UpperCase 用于其XAML。我想这是为了区分HTML(使用小写)。
    2. 示例:

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

答案 10 :(得分:1)

没有明确的建议。根据W3C的其他建议XHTML的建议,我选择了小写:

  

4.2。元素和属性名称必须为小写

     

XHTML文档必须对所有HTML元素和属性使用小写   名。这种差异是必要的,因为XML区分大小写,例如   &LT;李&GT;和&lt; LI&gt;是不同的标签。

答案 11 :(得分:0)

XML命名规则

XML元素必须遵循以下命名规则:

  • 名称可以包含字母,数字和其他字符
  • 名称不能以数字或标点符号开头
  • 名称不能以字母xml(或XML,或Xml等)
  • 开头
  • 名称不能包含空格可以使用任何名称,不保留任何单词。

来源:W3 School

答案 12 :(得分:0)

我一直在寻找一个好的方法,也读这个帖子和其他一些我会投票使用连字符

它们广泛用于ARIA(https://developer.mozilla.org/de/docs/Web/Barrierefreiheit/ARIA),可以在许多源代码中看到,因此很常见。正如这里已经指出的那样,它们当然是被允许的,这也在这里解释:Using - in XML element name

另外还有一个好处:当与CSS结合使用HTML时,您经常会有一些类,其名称默认使用连字符作为分隔符。现在,如果您有使用CSS类的自定义标记或使用CSS类的标记的自定义属性,那么类似于:

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

更加一致,读起来 - 用我的拙见 - 比以下更好:

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