Prelimanary
- XML 允许创作者定义自己的标签和自己的
文档结构
。 - XML 被设计为具有自我描述性。(eg. 邮件标签拥有标题以及留言,同时包含了发送者和接受者的信息)
- 合法的 XML 文档是“形式良好”的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则
- 标签的功能性意义依赖于应用程序的特性
- XML和HTML的区别:
- XML 用于传输数据,而 HTML 用于格式化并显示数据.
- 在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性,
请尽量使用元素
来描述数据。而仅仅使用属性
来提供与数据无关的信息。下面的例子中,ID 仅仅是一个标识符,用于标识不同的便签
。它并不是便签数据
的组成部分。
EG. <note id="501">
- XML 是独立于软件和硬件的信息传输工具。也就是说,数据能够存储在独立的 XML 文件中。这样你就可以专注于使用 HTML 进行布局和显示,并确保修改XML底层数据时候,不再需要对 HTML 进行任何的改变
- 之前升级到新的系统(硬件或软件平台),必须转换大量的数据,不兼容的数据经常会丢失。
- 如果你把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
- 避免 “:” 字符。冒号会被转换为命名空间来使用(XML 命名空间提供避免元素命名冲突的方法)。通过使用前缀,我们创建了两种不同类型的 元素。
EG. <f:table></f:table>
namespace(stand for ns)有啥用处
定义
XML Namespace is a mechanism to avoid name conflicts
by differentiating elements or attributes within an XML document that may have identical names
, but different definitions.
MY:XML命令空间是在XML文档中,通过区分有相同名字
,却是不同定义的
元素OR 属性 来防止
名字冲突的机制
谷歌翻译:XML命名空间是一种通过区分XML文档中可能具有相同名称但定义不同的元素或属性来避免名称冲突的机制。
<list:employeeList xmlns:list="urn:corp:list"
xmlns:emp="urn:corp:emp"
xmlns:sec="urn:corp:sec">
<list:personList>
<emp:empID>E0000001</emp:empID>
<sec:name>Sales</sec:name> <!-- 部门名-->
<emp:name>John Smith</emp:name> <!-- 员工名-->
</list:personList>
<list:personList>
<emp:empID>E0000002</emp:empID>
<sec:name>Development</sec:name>
<emp:name>Ichiro Tanaka</emp:name>
</list:personList>
</list:employeeList>
NS的结构
-
Default NS-----默认NS结构
-
复杂点儿的NS结构
-
Namespace Declaration Scope------NS的定义域
If the element and/ or attribute belong to a namespace, a colon(":")
is placed between the namespace prefix and the element name/ attribute name.