XML入门教程-XML文件的结构

发布时间:2020-09-13编辑:脚本学堂
本节介绍 XML文件的结构

XML文件拥有自己的结构。
一 XML文档的组成
任何事物都会由开始也会有结束。一个完整地XML应该具备以下规则:1.文档的开始必须是XML声明。
2.含有数据的元素必须有起始标记和结束标记。
3.不含数据并且仅使用一个标记的元素必须以/>结束。
4.文档只能包含一个能够包含全部其他元素的元素。
5.元素只能嵌套不能重叠。
6.属性值必须加引号。
7.字符<和&只能用于起始标记和实体引用。
8.出现的实体引用只有&、<、>、&apos;和"。
下面我们来具体解释
XML声明:
1.version,定义XML规范的版本号,到现在为止,只有一个版本号1.0 。
<?xml version="1.0" standalone="yes"?>
他的出现是文档最开头的部分,因为XML处理器会读取文件最先的几个字节并将它与字符串<?XML的不同编码作比较来确定正在使用的字符串集。除去看不见的字节顺序记号,在它之前不能有任何东西,包括空格。①在非空标记中使用起始和结束标记:如果忘了结束HTML的标记,Web浏览器并不严格追究。例如,如果文档包含一个<B>标记却没有相应的</B>标记,在<B>标记之后的全部文档将变为粗体。但文档仍然能显示。XML不会如此宽松,每个起始标记必须以相应的结束标记结束。如果一个文档未能结束一个标记,浏览器或移交器将报告一个错误信息,并且不会以任何形式显示任何文档的内容。②用"/>"结束空标记:不包含数据的标记,例如HTML的<BR>、<HR>和<IMG>,不需要结束标记。但是XML空标记必须由/>结束,而不是>。例如<BR>、<HR>和<IMG>的XML等价物是<BR/>、<HR/>和<IMG/>。
  当前的Web浏览器处理这种标记的方法不一致。但是如果想保持向后的兼容性,可以使用结束标记来代替,而且不能在其间包含任何文本。例如:
<BR></BR> 、 <HR></HR>、 <IMG></IMG>
即使这样,Netscape处理<BR></BR>也有困难(它把这两个标记解释为行间距,而不是前面所讲的)。因此,在HTML中包含结构完整的空标记也并非总是可行的。
2.encoding,指定文档的编码系统。
3.standalone,定义文档是独立的还是需要装入其他元素才能正确分析。如果XML文档没有外部实体或DTD,则可以设置为no,否则设置为yes。可用该值提高性能:如果为no,则可提高处理速度;如果设置为yes,则首先要分析文档,确定需要其他哪些文件,然后才能完全分析文档。
4.根元素,每篇XML文档都需要有且只能有一个根元素。由元素是文档的第一个元素,包含其它所有元素。下例的portal就是根元素,如:
   <portal>
     <name>jims</name>
     <email></email>
     …
   </portal>
属性,每个元素都可以设置一个或多个属性,如:
   <portal>
<name id=’1’,sex=”male”>Jims</name>
</portal>
元素和属性都可以表示信息,什么时候使用元素,什么时候使用属性呢?属性信息表现能力有限,它只能表示字符串。所以当需灵活表示信息时应该使用元素。一般把信息主体放到元素中,属性只放一些注释或额外的信息。
CDATA部份,它用<![CDATA[和]]>表示,它们之间的数据作为原始字符显示,唯一不能出现的标志是]]>。
注释,注释是很重要,不论是在编写程序和文档时,所以XML也提供了注释功能,以<!--开头-->结尾的一对区间为注释。在以-->结束之前,不能出现“--”号,“---”更不允许。
处理指令,处理指令以<?开头以?>结尾。如PHP处理指令可写成,<?php ... ?>。处理指令是标记,而不是元素。因此,与注释一样,处理指令可出现在XML文档的标签外的任何位置,包括根元素之前或之后。最常见的处理指令是,xml-stylesheet样式表指令,它会告诉浏览器在显示文档时应用什么样式表。如:
<?xml-stylesheet href=”sample.css” type=”text/css”?>
<portal>
     <name>…</name>
         …
   </portal>