xml

来源:互联网 发布:高中数学矩阵知识点 编辑:程序博客网 时间:2024/05/22 10:52

一、XML的概述(了解)

* eXtensible Markup Language 可扩展标记语言
* 宗旨是传输数据,而非显示数据。
* XML标签没有被预定义,需要用户自行定义标签。
* XML技术是W3C组织(WorldWideWeConsortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。
* 作用: a. 传输数据
 b. 配置文件(主要用途)


 

二、XML的语法(掌握)

* <?xml version=“1.0”?> 文档声明必须出现在第一句
* 一个标签有如下两种书写形式:
包含标签主体:<mytag>some content</mytag>
不含标签主体:<mytag/>
* 一个XML文档必须有且仅有一个根标签
* XML中不会忽略主体内容中出现的空格和换行。
* 严格区分大小写
* <!--这是注释-->
* CDATA : 把标签当做普通文本内容;
<![CDATA[
<itcast>www.itcast.cn</itcast>
]]>

 

<?xml version = "1.0" ?><中国><首都>北京</首都></中国>
未写encoding属性:


encoding属性:告诉浏览器 解码的时候采用什么来解码


三、XML的约束(看懂即可,掌握引入外部约束文件的语句)

* DTD约束(不够严谨)

(Document Type Definition)文档类型定义

*分类: 
格式良好的XML:遵循XML语法的XML
有效的XML:遵循约束文档的XML
    
      约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。
  
    注意:dtd文档必须用utf-8编码格式保存 
* 校验XML的有效性
    * 非校验解析器  参见validator.html
* 校验解析器

* DTD 文件的引入:
当引用的DTD文档在本地时,采用如下方式:<!DOCTYPE 根元素 SYSTEM “DTD文档路径”>
当引用的DTD文档在公共网络上时,采用如下方式:
<!DOCTYPE 根元素 PUBLIC “DTD名称” “DTD文档的URL”>
eg : <!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
* DTD文件的语法
在DTD文档中使用ELEMENT关键字来声明一个XML元素。
如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档。
如果子元素用“|”分开,说明任选其一
用+、*、?来表示元素出现的次数
   定义属性:
    <!ATTLIST 元素名
属性名1 属性值类型 设置说明

属性名2 属性值类型 设置说明>


采用IE内置的解析器来验证xml文件的正确性:
book.xml:
<?xml version = "1.0" ?><!DOCTYPE 书架  SYSTEM "book.dtd"> <书架><书><书名>葵花宝典</书名><作者>安倍晋三</作者><售价>100</售价></书><书><书名>金瓶梅</书名><作者>安倍晋四</作者><售价>50</售价></书></书架>

book.dtd:

<!ELEMENT 书架 (书+)><!ELEMENT 书 (书名,作者,售价)><!ELEMENT 书名 (#PCDATA)><!ELEMENT 作者 (#PCDATA)><!ELEMENT 售价 (#PCDATA)>
vaidator.html:

<body>     <script type="text/javascript">     <!--var xmldoc = new ActiveXObject("Microsoft.XMLDOM");xmldoc.validateOnParse = "true";xmldoc.load("book.xml");var reason = xmldoc.parseError.reason;  var line = xmldoc.parseError.line ;document.write(line + ":" + reason) ;     //-->     </script> </body>

* Schema约束(严谨,结构清晰)

掌握如何引入一个schema文件
* 名称空间 : 指的是一个环境,所用的标签来自于哪个环境定义的。
* 掌握引用schema文件: 
xml中引入schema约束的步骤:
1、查看schema文档,找到根元素,在xml中写出来
<?xml version="1.0" encoding="UTF-8"?>
<书架>
 
</书架>

2、根元素来自哪个名称空间。使用xmlns指令来声明
名称空间是在schema中定义的,就是targetNamespace的值
 
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book">
 
</itcast:书架>

3、引入的名称空间根哪个xsd文件对应?
使用schemaLocation来指定:两个取值:第一个为名称空间 第二个为xsd文件的路径
 
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book"
schemaLocation="http://www.itcast.com/book book.xsd">
 
</itcast:书架>

4、schemaLocation哪里来的?它来自一个标准的名称空间,直接复制黏贴即可.
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.com/book book.xsd">
 
</itcast:书架>

5、只要以上4部搞好了,对于子标签myeclipse就有提示了

0 0