案例公约的元素名称?

是否有任何正式的 XML元素套件的build议?

我知道XHTML使用小写的元素名称(与正则使用大写但不区分大小写的HTML相反)。

但是我正在讨论关于通用内容的XML。

小写:

<customer> <accountnumber>619</accountnumber> <name>Shelby Lake</name> </customer> 

骆驼香烟盒:

 <customer> <accountNumber>619</accountNumber> <name>Shelby Lake</name> </customer> 

PascalCase:

 <Customer> <AccountNumber>619</AccountNumber> <Name>Shelby Lake</Name> </Customer> 

大写:

 <CUSTOMER> <ACCOUNTNUMBER>619</ACCOUNTNUMBER> <NAME>Shelby Lake</NAME> </CUSTOMER> 

注:我正在寻找引用的准则,而不是意见。 但最高票数的意见可以被视为一个指导方针。

来自W3C的大多数XML标准倾向于用连字符使用小写字母。

将XML看作W3C标准试图鼓励的平台中性文档的格式和XAML之类的语言之间存在着哲学上的区别,如XAML将XML视为平台特定对象图的序列化。

如果您不是将XML用作平台中立的文档格式,而是将其用作特定于应用程序的序列化,那么您不妨将自己省去一些麻烦,并在XML名称和平台特定名称之间build立1:1的对应关系。 但是为此目的,几乎任何其他的对象图格式都比XML好。

如果你是,那么你可能需要适应XHTML,XSLT,SVG,XProc,RelaxNG等等。

这并不重要,但我一直偏爱PascalCase for Elements和camelCase的属性:

 <Root> <ParentElement attributeId="1"> <ChildElement attributeName="foo" /> </ParentElement> </Root> 

没有正式的build议。

由于XML是devise用于保存文档在不同系统之间交换信息的双重目的,所以它被devise为能够匹配使用它的应用程序。

所以.Net XML往往会使用ProperCasing(见证XAML),而其他XML将使用camelCasing,python_conventions,dot.naming,甚至COBOL-CONVENTIONS。 W3C似乎很喜欢用小写的破折号(比如XSLT),或者仅仅把低效的术语(例如MathML)混合在一起。

我喜欢所有小写字母和下划线,因为这意味着使用[Shift]键的次数减less了,而且我的手指有点懒。 🙂

要添加到Metro Smurf的答案。

国家信息交换模型(NIEM: http : //en.wikipedia.org/wiki/National_Information_Exchange_Model )表示使用:

  • Upper CamelCase(PascalCase)为元素。
  • (更低)camelCase的属性。

当你想要符合一些标准时,NIEM是一个很好的select。

有关几个标准中使用的一些示例规则,请参阅UN / CEFACT XML命名和devise规则技术规范版本3.0第23页。

细节(从2009年12月17日版本3.0的第23页):

  • LowerCamelCase(LCC)必须用于命名属性。
  • UpperCamelCase(UCC)必须用于命名元素和types。
  • 除非概念本身是复数,否则元素,属性和types名称必须是单数forms。

( 其他链接,瑞典网站 )

为了扩展我上面的评论 :使用“带连字符的小写字母”在XSLT中有一些问题。 具体来说,很容易把一个称为“年龄”的节点与“年龄”公式(例如从年份中减去年龄)混淆起来。

正如@KarlKieninger指出的那样,这只是人类层面的一个问题,而不是XSLTparsing器。 然而,因为这通常不会产生错误 ,所以使用“带连字符的小写字母”作为标准是要求麻烦,恕我直言。

一些相关的例子:

 <a>1</a><b>1</b> <xsl:value-of select="a+b"/> outputs 2, as expected <a>1</a><b>1</b> <xsl:value-of select="ab"/> DOES NOT ERROR, BUT OUTPUTS NOTHING AT ALL 

在上面的代码中,您必须在减法运算符之前放置至less一个空格,但是对于加法运算符没有这样的要求。

 <ab>1</ab><c>1</c> <xsl:value-of select="ab -c"/> outputs 0, as expected 

但是请注意,以上是如何混淆阅读!

 <a>1</a><ab>3</ab><b>2</b> <xsl:value-of select="ab"/> outputs 3 <a>1</a><ab>3</ab><b>2</b> <xsl:value-of select="a -b"/> outputs -1 

单个空间的存在会改变上面的输出,但是这两个variables都不是一个错误。

谷歌的风格指南推荐(也许甚至强制)所有元素名称的camelCase以及属性名称。

连字符的最初意图是使用连字符小写。 这是区分大小写的,不需要你遵循这个约定 – 所以你可以做任何你想要的。 我没有引用,对不起。

我不会说HTML“canonically”使用大写字母。 我认为最初的大写是用来更直观地将HTML从内容中分离出来。 现在语法突出显示,这是没有必要的。

我转向小写字母,必要时用破折号(也可以更快地input)。 在XML混合案例只是感觉不对我。

骆驼案件得到我的投票。

至于引用的例子,这个问题也许可以成为人们引用的链接。