XML第三讲:XMLSpy详解、有效的XML文档解析

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,它只能验证当前的文档。



























  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XMLSpy 是 Altova 公司开发的一款专业 XML 编辑器和开发工具。它提供了丰富的功能,方便用户编辑、验证和转换 XML 文档以及进行 XSLT、XPath、XQuery、WSDL 等相关技术的开发和调试。 以下是一个简要的 XMLSpy 使用教程: 1. 打开 XML 文档:在 XMLSpy 主界面上选择 "File" -> "Open",然后选择要打开的 XML 文档。 2. 查看和编辑 XML 文档:在 XMLSpy 的编辑器窗口中,你可以查看和编辑 XML 文档的内容。你可以手动输入或者复制粘贴 XML 代码,也可以使用 XMLSpy 的图形界面进行编辑。 3. 校验 XML 文档XMLSpy 可以验证 XML 文档的语法和结构是否符合相应的 XML Schema、DTD 或 Relax NG 约束。你可以选择 "XML" -> "Validate",然后选择相应的验证选项。 4. 转换 XML 文档XMLSpy 支持将一个 XML 文档转换为另一种格式,如 HTML、PDF 等。你可以选择 "XML" -> "Convert",然后选择相应的转换选项。 5. 开发 XSLT、XPath、XQuery 等:XMLSpy 提供了丰富的工具和功能来开发和调试 XSLT、XPath、XQuery 等相关技术。你可以选择 "Tools" -> "Stylesheet Designer" 来设计和编辑 XSLT 样式表。 6. 调试和执行 Web 服务(WSDL):XMLSpy 支持调试和执行 Web 服务。你可以选择 "Tools" -> "Web Service Call" 来调用和测试 Web 服务,并查看返回的结果。 这只是一个简要的介绍,XMLSpy 还有许多其他功能和选项可以探索。如果你需要更详细的使用教程,可以查阅 XMLSpy 官方文档或在线资源。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值