【问题标题】:Is there a standard naming convention for XML elements? [closed]XML 元素有标准的命名约定吗? [关闭]
【发布时间】:2009-01-14 10:22:21
【问题描述】:

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

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

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

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

【问题讨论】:

标签: xml coding-style naming-conventions


【解决方案1】:

我怀疑最常见的值是驼峰式 - 即

<myTag someAttribute="someValue"/>

特别是,如果与代码生成器混合使用空格(例如,将 xml [反]序列化为对象),空格会导致一些故障,因为没有多少语言允许带有空格的枚举(需要两者之间的映射)。

【讨论】:

  • 嗯...最佳答案...我认为这是一个不错的答案,但这只是一种意见。有某种参考会很好。
  • 我不同意,我不习惯看到带有驼峰格的XML。
  • 我知道这是一个旧答案,但我见过的大多数 较新 Microsoft XML 倾向于不同意这种格式选择。但是后来 IIS 喜欢 dot.naming 所以 ..
  • 每个人都提到它是个人的,但我遵循你的方法,因为我总是使用 XMLSchema 定义我的 XML,而 XMLSchema 遵循这种方法。 w3.org/2001/XMLSchema.xsd 。对我来说,这与编程语言无关。我们使用 XML 是因为它是一种可互操作的接口标准。编程语言只是一个实现细节,每种语言都有自己的约定。
  • 我的 2 美分 - 我见过 CamelCase,全是小写;很少全部大写(旧 HTML),我见过小写。我不记得曾经见过骆驼背。我更喜欢 CamelCase 或小写。但是,属性我倾向于全部小写。
【解决方案2】:

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

【讨论】:

  • 一切都归结为你要追随的宗教。
【解决方案3】:

我喜欢 TitleCase 用于元素名称,而 camelCase 用于属性。两者都没有空格。

<AnElement anAttribute="Some Value"/>

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

【讨论】:

    【解决方案4】:

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

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

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

    • XHTML,尤其是类属性(您可以放置​​两个或更多类),当然还有 alt 和 title 属性。
    • SVG,例如路径标签的 d 属性。
    • 都带有样式属性...

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

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

    【讨论】:

    • 反对空格的论点是,这只是因为在问题中专门提出了,如果枚举值然后支持解析,没有多少语言支持带空格的枚举,但是我们中的许多人在 C/C++、C# 或 Java(我使用的语言,但不限于)中使用 XML 通常会将属性值映射到枚举。然后我们可以简单地将文字解析为映射/字典(或者在 Java 和 C# 的情况下更容易)。最终,我同意这似乎是一个热情而不是标准的问题。我只是遵循“在罗马时”的理念。
    【解决方案5】:

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

    【讨论】:

    • +1 用于考虑变量/函数名称
    • @downvoter:请礼貌地解释一下自己。
    【解决方案6】:

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

    <my_tag attribute="some value">
    

    该值不需要使用下划线或分隔符,因为您可以在属性值中使用空格,但不能在元素标签名称中使用空格。

    【讨论】:

    • +1,因为您引用了包含“最佳命名实践”部分的参考文献(不仅仅是意见)
    • @Fuhrmanator 这个“参考”本身就是一种观点,尽管它确实提供了一些理由。无论如何,它都不是一个标准——而且(尽管它没有以前那么糟糕)我确实推荐或使用 w3schools 作为“参考”。还有更多原始和全面的资源。
    • @user2864740 比如?您在提供更原始和全面的资源之前完成了您的评论。我 +1 的重点是 OP 要求提供标准,但大多数答案都提供了意见。
    • 此答案提供意见,与 w3schools 的链接无关,不会删除此类。至于标准,请参阅实施规则(如RSS)或组织规则(如OAGi)-在某些级别上,“标准”仅适用于特定的应用程序/业务级别。 w3schools 链接仅以非常模糊 的方式提供其自己的 意见/最佳实践(它提供了一些提示并说“这是完成的一些方法”)。跨度>
    • 也就是说,仅包含一个链接并不能使答案(或链接的资源)具有权威性。
    【解决方案7】:

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

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

    【讨论】:

      【解决方案8】:

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

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

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

      lastBuildDate 总编辑 发布日期

      【讨论】:

        【解决方案9】:

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

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

        【讨论】:

        • 虽然对项目内工作很有用,但当 XML 用作与语言无关的交换格式时,它很快就会失效..
        • 那么你项目中的组件是一致的,但是你如何设计项目所遵循的初始标准呢?
        【解决方案10】:

        Microsoft 采用两种约定:

        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 使用 UpperCase。我想这是为了区别于 HTML(使用小写)。

        例子:

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

        【讨论】:

          【解决方案11】:

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

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

          XHTML 文档的所有 HTML 元素和属性必须使用小写字母 名字。这种差异是必要的,因为 XML 是区分大小写的,例如

        • 是不同的标签。
        • 【讨论】:

            【解决方案12】:

            XML 命名规则

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

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

            来源:W3 School

            【讨论】:

            • 对可能的名称类型的模糊描述几乎没有指导应该使用哪些可能的名称。
            • 虽然他们定义了可能的基线 - 对吧?
            • 当然,但这就像如果有人问“我应该给我的孩子取什么名字,这样他们就不会在学校被欺负”,而你回答说“嗯,这是人类能够发出的声音列表生产。”
            • 是的,但 htat 实际上不是问题,对吧?因为问题是:“XML 元素有标准命名约定吗?”以及“XML 文档是否有任何事实上的标准或其他标准?”所以这是一个答案,对吗?一种回答问题的方法,而不仅仅是对问题的一种常见解释流。
            • 如果您忽略这两句话之后的其余问题,这只是一个答案。您没有尝试回答“哪个是“最好的”或“哪个更好”。
            【解决方案13】:

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

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

            还有一个附带的好处:当结合 CSS 编写 HTML 时,您通常会在默认情况下使用连字符作为分隔符的类的名称。现在,如果您有使用 CSS 类的自定义标签或使用 CSS 类的标签的自定义属性,那么类似:

            &lt;custom-tag class="some-css-class"&gt;

            更一致并且读起来 - 以我的拙见 - 比:

            &lt;customTag class="some-css-class"&gt;

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-01-31
              • 2012-11-14
              • 1970-01-01
              • 2011-08-27
              • 2010-10-21
              • 1970-01-01
              相关资源
              最近更新 更多