一个XML文档包含XML元素。
什么是XML元素?
XML元素是一切(including)元素的开始标记(including)该元素的结束标记。
<price>29.99</price>
一个元素可以包含:
- 文本
- 属性
- 其他元素
- 或上述的混合
<bookstore>
<book category="children">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的例子:
<title>, <author>, <year>和<price>有text content ,因为它们包含文本(like 29.99)
<bookstore>和<book>有element contents ,因为它们含有的元素。
<book>有一个attribute (category="children")
空XML元素
没有内容的元素被认为是空的。
在XML中,你可以指示像这样的空元素:
<element></element>
您还可以使用所谓的自闭标签:
<element />
这两种形式产生XML软件(读者,解析器,浏览器)相同的结果。
空元素可以有属性。
XML命名规则
XML元素必须遵循以下命名规则:
- 元素名称是区分大小写
- 元素名称必须以字母或下划线开始
- 元素名称不能以字母的xml启动(or XML, or Xml, etc)
- 元素名称可以包含字母,数字,连字符,下划线和句号
- 元素名称不能包含空格
任何名称都可以使用,没有的话被保留(except xml)
最佳命名做法
创建描述性名称,例如: <person>, <firstname> , <lastname> 。
创建简短的名称,像这样: <book_title>不喜欢这样的: <the_title_of_the_book>
避免"-" 如果命名的东西"first-name" ,一些软件会认为你想减去"name" ,从"first" 。
避免"." 。 如果你的东西命名为"first.name"一些软件会认为"name"是对象的属性"first" 。
避免":" 冒号被保留用于名字空间(more later) 。
像EOA非英文字母是XML完全合法的,但要注意的问题,如果你的软件不支持他们。
样式命名
有用于XML元素定义没有命名的样式。 但这里有一些常用的有:
样式 | 例 | 描述 |
---|---|---|
Lower case | <firstname> | 所有字母小写 |
Upper case | <FIRSTNAME> | 所有字母大写 |
Underscore | <first_name> | 下划线分隔词 |
Pascal case | <FirstName> | 每个单词首字母大写 |
Camel case | <firstName> | 每个单词首字母大写,除了第一 |
如果你选择的命名风格,这是好事,是一致的!
XML文档通常有一个相应的数据库。 通常的做法是使用数据库的命名规则的XML元素。
骆驼的情况是JavaScript中常见的命名规则。
XML元素是可扩展
XML元素可以扩展到携带更多的信息。
请看下面的XML例子:
<note>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>
让我们想象一下,我们创建了一个提取的应用程序中的<至>,<距离>和<body>从XML文档元素产生这样的输出:
MESSAGE To:托芙 不要忘了我这个周末! |
想象一下,XML文档的作者增加了一些额外的信息,它:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
如果应用程序中断或崩溃?
第应用程序仍然应该能够找到<to>, <from>和<body> XML文档中的元素,并产生相同的输出。
这是XML的美女之一。 它可以在不破坏的应用程序进行扩展。