XML第三讲:XMLSpy详解、有效的XML文档解析
来源:互联网 发布:科目四软件下载 编辑:程序博客网 时间:2024/05/29 14:20
1. 文档类型定义和命名空间
1) 文档类型定义
通过DTD来创建针对XML的规则。这种的XML文档就是有效的XML文档。
有效的(valid)XML 文档。首先XML文档是个格式正规的XML文档,然后又需要满足DTD的要求,这样的XML文档称为有效的XML文档。
2) DTD声明
3) 元素声明
4) 属性声明
5) 实体声明
6) 命名空间
2. 什么是DTD、为什么要用DTD
DTD可以实现对这些规则的约定,我们写的XML文档就要符合这种规定,那么这个XML文档就是有效的XML文档。
1) DTD文档与XML文档实例的关系就好比如是类与对象的关系,类是抽象的,对象是具体的。DTD也是这样子的它规定了这个XML文档必须要有某个元素,这个元素必须要有某个属性,也是一种抽象的描述,当我生成一个具体的XML文档之后,这些元素和属性也就相应的会出现。
2)如何生成一个DTD文档
(1) 所谓内部DTD就是表示DTD的内容是和XML的内容放在一起的,同一个文件中的。
所谓外部DTD就是表示DTD文档和XML文档时分开的,通过路径的方式使得XML文档能够引用到DTD。
内外部DTD文档结合用的比较少。
(2) 现在我们来写一下内部DTD文档,以及它们如何使用校验。
这次在XMLSpy软件上编辑,新建一个XML文档innerDTD.xml,如果对这个软件不是很熟悉的话,可以去网上找相关资料进行学习。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE poem [<!ELEMENT poem (author, title, content)><!ELEMENT author (#PCDATA)><!ELEMENT title (#PCDATA)><!ELEMENT content (#PCDATA)>]><poem><author>王维</author><title>鹿柴</title><content>空山不见人,但闻人语声。返景入深林,复照青苔上。</content></poem>
在浏览器中运行,解析成功,这就是内部DTD实例。【注意】:再写DTD文档的时候,注意元素之间的空格。否则语法通不过。
【说明】:DTD中的元素的名称,顺序定义好之后,在写XML文档的时候必须按照这个名称,顺序写,而且也不能增加元素或减少元素,否则语法通过,但是逻辑上是不正确的。可以再XMLSpy上快捷键F7,与F8进行测试。
(3) 外部DTD,现在我们来练习一下外部DTD的使用方法
新建一个dtd.dtd
<?xml version="1.0" encoding="UTF-8"?><!ELEMENT poem (author, title, content)><!ELEMENT author (#PCDATA)><!ELEMENT title (#PCDATA)><!ELEMENT content (#PCDATA)>
新建一个xml.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE poem SYSTEM "dtd.dtd"><poem><author>王维</author><title>鹿柴</title><content>空山不见人,但闻人语声。返景入深林,复照青苔上。</content></poem>
在浏览器中运行,解析正确【说明】:注意其中<!DOCTYPE poem SYSTEM "dtd.dtd"> SYSTEM后面取的相对路径下的dtd文件,所以要将xml.xml与dtd.dtd放在同一级目录下.
【说明】:#PCDATA (Parsed Character Data),可解析的字符数据。简单来说就是字符串数据。
(4)内外部结合的DTD文档(这个用的比较少,稍作了解即可)
新建一个dtd_1.dtd
<?xml version="1.0" encoding="UTF-8"?><!ELEMENT author (#PCDATA)><!ELEMENT title (#PCDATA)>再新建一个xml_1.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE poem SYSTEM "dtd_1.dtd"[<!ELEMENT poem (author, title, content)><!ELEMENT content (#PCDATA)>]><poem><author>王维</author><title>鹿柴</title><content>空山不见人,但闻人语声。返景入深林,复照青苔上。</content></poem>在浏览器中运行,xml解析成功。哪些元素在里面,哪些元素在外面是没有关系,只要合并起来能够约束到xml文档就是可以的。
【注意】:外部的DTD有一个好处是可以复用,它可以验证这个文档,也可以验证另外一个文档,如果是内部的DTD,它只能验证当前的文档。
- XML第三讲:XMLSpy详解、有效的XML文档解析
- xmlbeans XMLSpy 解析xml
- 有效的XML文档以及解析技术
- XML第十六讲:SAX方式解析XML文档深入详解
- XML第二讲:格式正规的XML文档、XML文档的元素、属性、实体深度详解
- xml文档的SAX解析的详解
- XML第十六讲:SAX方式解析XML文档深入详解 续
- 优秀的XML开发环境----Altova XMLSpy 2010英文企业版+有效破解方法
- xml文档的解析
- XML文档的解析
- Xml文档的解析
- XML第十四讲:使用DOM解析XML文档 续
- SAX解析xml文档经常讲xml变成对象
- XML第十五讲:使用递归与DOM解析任意的XML文档
- XML第三讲
- XMLSpy处理XML
- xmlbean+xmlspy 编辑xml
- 如何用xmlspy将xml文档生成xsd文件?
- 使用commons-beanutils封装请求中的数据与数据类型的转换,web中使用md5和BASE64Encoder加密
- 黑马程序员_java基础总结(1)
- poj1584 A Round Peg in a Ground Hole
- 各个品牌常见机型的手动进入Recovery的方法
- 代码效率测试方法
- XML第三讲:XMLSpy详解、有效的XML文档解析
- 绘制像素点
- 深入面向对象
- 『HTML5制作仿JQuery效果』减速&加速滑动的实现
- 智遥工作流是如何处理一个领导,负责多个部门的事务
- 堆栈和托管堆c#
- .NET 与VB.NET
- 还是关于pdflatex生成的文件复制粘贴出现乱码问题
- python-multiprocessing module install