XML基础知识及Namespaces理解

XML 是"Extensible Markup Language" 的简称,是一种text-based,tag-based(基于文本,基于标签)的标记性语言。
XML 可以分为两种不同的mode(模式) :

Well-formed XML
Valid XML


Well-formed XML相对来说比较自由,没有预先设定好的schema(架构)来约束,可以在不违反 nesting rule for tag 的情况下,创建自己的tag,标签。
刚开始学XML,必须得清楚几个重要的概念 :

1,Tags
2,Element,Root Element,Empty Element
3,Attribute
4,Namespace
5,Namespace Name
6,Qualified Name
7,Local Name

Tags -标签,在上面之所以称标签为Tags而不是Tag,是因为在XML中,标签总是成对出现的,当然除了 Empty Tag。举个例子
<Name>Chuan Su</Name>
当一个 <Name>(opening tag)出现时,后面必定会跟上一个matched </Name>(closing tag)
所以 Tags in XML are text surrounded by triangular brackets,<...>
两个tag,opening tag与closing tag,并且包括在两标签内的everything,就称为XML的一个 Element。
说了这么多先来看个简单的例子吧。

<?xml version="1.0" encoding="UTF-8" standalone = "yes" ?>
<StarMovieData>
	<Star>
		<Name>Carrie Fisher</Name>
		<Address>
			<Street>123 Maple St.</Street>
			<City>Hollywood</City>
		</Address>
		<Address>
			<Street>5 Locust Ln.</Street>
			<City>Malibu</City>
		</Address>
	</Star>
	<Star>
		<Name>Mark Hamill</Name>
		<Street>456 0ak Rd.</Street>
		<City>Brentwood</City>
	</Star>
	<Movie>
		<Title>Star Wars</Title>
		<Year>1977</Year>
	</Movie>
</StarMovieData>

第一行称为XML文件的prolog(开端),最小的XML prolog为
<? xml version = "1.0" ?>仅表明这个文件是XML 文件
对于attribute standalone = "yes" 这个的理解,官方网站上这样讲的
引用
standalone: Tells whether or not this document references an external entity or an external data type specification. If there are no external references, then "yes" is appropriate.

也可以简单的理解为这个XML文件不涉及到 DTD,当看到 standalone = "yes"就可以直接说 这个xml 文件 是一个 well-formed XML

上面讲到了 element, 在这个例子中,可以看到有很多个elements,但是在一个xml文件中 root element只有一个,位于
<?xml version="1.0" encoding="UTF-8" standalone = "yes" ?>
<rootElement>

..........

</rootElement>

引用
在 XML 中,an element can have attributes(name-value pairs) within its opening tag.

每一个xml element 可以有多个attributes,attributes是以 “name = value"这样的形式出现在 这个element的opening tag当中的。

比如上面例子中的 "<Movie>...</Movie> "element,如果要对Movie添加属性的话,
写为
<Movie,title = "Star Wars",year = 1977>
		<Country>America</Country>
		<Time>120 minutes</Time>
	</Movie>

此时的 title,year不再是element而是 element Movie的 attributes了。
在XML 中也可以有 Empy element,在上面的例子当中
可以出现 <Movie/> 这样一个单纯的Empty element,即只有一个tag,但是Empty element可以有自己的attributes,例如
<Movie,title = "Star Wars",year = 1977 />


Namespaces

由于关于Namespace 写的态度,姑且放到了 我的博客分类
《详解XML namespace》
一文中了,请见谅。

你可能感兴趣的:(xml,Atttibutes,Local name,Qualified name,NameSpaces)