`
wangminshe89
  • 浏览: 661943 次
文章分类
社区版块
存档分类
最新评论

XML语法4-7

 
阅读更多
第四章 XML语法

五.Namespaces的语法

Namespaces翻译为名字空间。名字空间有什么作用呢?当我们在一个XML文档中使用他人的或者多个DTD文件,就会出现这样的矛盾:因为XML中标识都是自己创建的,在不同的DTD文件中,标识名可能相同但表示的含义不同,这就可能引起数据混乱。
比如在一个文档<table>wood table</table>中<table>表示桌子,
而在另一个文档<table>namelist</table>中<table>表示表格。如果我需要同时处理这两个文档,就会发生名字冲突。
了解决这个问题,我们引进了namespaces这个概念。namespaces通过给标识名称加一个网址(URL)定位的方法来区别这些名称相同的标识。
Namespaces同样需要在XML文档的开头部分声明,声明的语法如下:
<document xmlns:yourname='URL'>
其中yourname是由你定义的namespaces的名称,URL就是名字空间的网址。
假设上面的"桌子<table>"文档来自http://www.zhuozi.com,我们就可以声明为
<document xmlns:zhuozi='http://www.zhuozi.com'>
然后在后面的标识中使用定义好的名字空间:
<zhuozi:table>wood table</table>
这样就将这两个<table>区分开来。注意的是:设置URL并不是说这个标识真的要到那个网址去读取,仅仅作为一种区别的标志而已。

如下例中的Html不能为HTML或html
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<books xmlns:Html="
http://www.w3.org/Profiles/XHtml-transitional">
<book>
<Html:TABLE border="0" align="center">
<Html:form>
<Html:TR>
<Html:TD>NAME</Html:TD>
<Html:TD><Html:INPUT TYPE="TEXT"/></Html:TD>
</Html:TR>
<Html:TR>
<Html:TD>NAME</Html:TD>
<Html:TD><Html:INPUT TYPE="TEXT"/></Html:TD>
</Html:TR>
<Html:TR>
<Html:TD>NAME</Html:TD>
<Html:TD><Html:INPUT TYPE="TEXT"/></Html:TD>
</Html:TR>
<Html:TR>
<Html:CENTER>
<Html:INPUT TYPE="SUBMIT"/><Html:INPUT TYPE="RESET"/>
</Html:CENTER>
</Html:TR>
</Html:form>
</Html:TABLE>
</book>
</books>
六.entity的语法


entity翻译为"实体"。它的作用类似word中的"宏",也可以理解为DW中的摸板,你可以预先定义一个entity,然后在一个文档中多次调用,或者在多个文档中调用同一个entity。
entity可以包含字符,文字等等,使用entity的好处在于:1.它可以减少差错,文档中多个相同的部分只需要输入一遍就可以了。2.它提高维护效率。比如你有40个文档都包含copyright的entity,如果需要修改这个copyright,不需要所有的文件都修改,只要改最初定义的entity语句就可以了。
XML定义了两种类型的entity。一种是我们这里说的普通entity,在XML文档中使用;另一种是参数entity,在DTD文件中使用。
entity的定义语法为:
<!DOCTYPE filename [
<!ENTITY entity-name "entity-content"
]
>
例如我要定义一段版权信息:
<!DOCTYPE copyright [
<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved"
]
>
如果我的版权信息内容和他人共享一个XML文件,也可以使用外部调用的方法,语法象这样:
<!DOCTYPE copyright [
<!ENTITY copyright SYSTEM "http://www.sample.com/copyright.xml">
]
>
定义好的entity在文档中的引用语法为:&entity-name;
例如,上面定义的版权信息,调用时写作:&copyright;
完整的例子如下,你可以copy下来存为copyright.xml观看实例:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE copyright [
<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved">
]>
<myfile>
<title>XML</title>
<author>ajie</author>
<email>ajie@aolhoo.com</email>
<date>20010115</date>
&copyright;
</myfile>

七.DTD的语法

DTD是"有效XML文档"的必须文件,我们通过DTD文件来定义文档中元素和标识的规则及相互关系。如何建立一个DTD文件呢?让我们一起来学习:

1.设置元素

元素是XML文档的基本组成部分。你要在DTD中定义一个元素,然后在XML文档中使用。元素的定义语法为:<!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*>

说明:

"<!ELEMENT" 是元素的声明,说明你要定义的是一个元素;

声明后面的"DESCRIPTION",是元素的名称;

"(#PCDATA, DEFINITION)*>"则是该元素的使用规则。规则定义了元素可以包含的内容以及相互的关系。下面的表格概要列出了元素的规则:

2.元素规则表:

Symbol

含义

举例

#PCDATA

包含字符或文本数据

<MYFILE(#PCDATA)>
元素MYFILE包含一个文本数据

#PCDATA, element-name

包含文本和其它子元素

<MYFILE(#PCDTATA,TITLE)>
MYFILE元素必须包含文本和TITLE子元素

,

使用逗号分隔排序

<MYFILE (TITLE,AUTHOR,EMAIL)>
MYFILE元素必须依次包含TITILE,AUTHOR,EMAIL三个子元素

|

使用"|"表示或者

<MYFILE (TITLE | AUTHOR | EMAIL)>
MYFILE元素必须包含TITLE,或者AUTHOR或者EMAIL子元素。

name

只能使用一次

<MYFILE (TITLE)>
MYFILE元素必须包含TITLE子元素,而且只能使用一次。

name?

使用一次或者不使用

<MYFILE (TITLE,AUTHOR?,EMAIL?)>
MYFILE元素必须包含TITLE子元素,而且只能使用一次;可以包含或者不包含AUTHOR和EMAIL子元素,但是如果使用,只能一次。

name+

使用至少一次或多次

<MYFILE (TITLE+,AUTHOR?,EMAIL)>
MYFILE元素必须包含TITLE子元素,而且使用至少一次;接下来可以跟随AUTHOR子元素,也可以不跟;最后必须包含EMAIL子元素,而且只能使用一次。

name*

使用一次,多次,或者根本不使用

<MYFILE (TITLE*)>
MYFILE元素可以包含一个,多个或者不包含TITLE子元素

( )

设置组,可以嵌套

<MYFILE(#PCDATA | TITLE)*>
元素MYFILE包含一个或者更多的文本或者TITLE子元素。

<MYFILE((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>
MYFILE元素必须包含一些内容,内容或者是一个注释;也或者是多个组,组里包含:一个,多个或者没有TITLE子元素,接着是一个或者没有AUTHOR子元素,再接着是一个必须的EMAIL子元素。

另外,我们还可以为元素定义属性,因为我们不推荐使用属性,在这里就不详细展开了。

 最后,我们来总结一些前四章学习的内容,写一个包含DTD,XML,以及Script的简单实例,便于读者理解:
1.将下面文件存为myfile.dtd
<!ELEMENT myfile (title, author)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>

2.然后建立XML文档myfile.xml:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE myfile SYSTEM "myfile.dtd">
<myfile>
<title>XML轻松学习手册</title>
<author>ajie</author>
</myfile>

3.建立HTML文档myfile.html
<html>
<head>
<script language="JavaScript" for="window" event="onload">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("myfile.xml");
nodes = xmlDoc.documentElement.childNodes;
title.innerText = nodes.item(0).text;
author.innerText = nodes.item(1).text;
</script>
<title>在HTML中调用XML数据</title>
</head>
<body bgcolor="#FFFFFF">
<b>标题: </b>
<span id="title"></span><br>
<b>作者: </b>
<span id="author"></span><br>
</body>
</html>

4.用IE5.0以上浏览器打开myfile.html就可以看到效果了。

好了,到今天第四章结束,我们对XML已经有了一些基本的了解。第五章我将为大家讲解一个XMl实际应用的成功例子,展现XML的强大功能。让我们一起来看下一章:XML实例分析

分享到:
评论

相关推荐

    Xerces-J-tools.2.11.0-xml-schema-1.1-beta.zip下载

    Xerces是一个开放源代码的XML语法分析器。从JDK1.5以后,Xerces就成了JDK的XML默认实现 Xerces-C++ 的前身是 IBM 的 XML4C 项目。XML4C 和 XML4J 是两个并列的项目,而 XML4J 是 Xerces-J——Java 实现——的前身。...

    xml-security-bin-1_4_1.zip

    XML Security项目是为XML安全标准(XML-Signature Syntax and Processing:XML数字签名语法和处理规则;XML Encryption Syntax and Processing:XML加密语法和处理规则)提供Java及C++实现的开源项目。它当前的Java类包中...

    检查XML语法的工具

    适合刚开始学习xml的人,能快速检查xml语法错误,不用安装,解压即用

    XML语法.pdf

    XML语法.pdf

    XML 语法规则

    XML 语法规则 • Previous Page • Next Page XML 的语法规则很简单,且很有逻辑。这些规则很容易学习,也很容易使用。 所有 XML 元素都须有关闭标签 在 HTML,经常会看到没有关闭标签的元素: &lt;p&gt;This is a ...

    Android开发 XML 语法规则

    Android开发 XML 语法规则,简单的介绍了一下android开发中,编写XML需要注意的一些事项。

    XML语法分析器

    XML 语法分析器 实验 课程设计

    XML实用大全----xml详细参考书

    .4 为XML文档编写样式单... 40 .5 将样式单附加到XML文档上... 41 3.6 本章小结... 43 第4章 数据的结构化... 44 4.1 检查数据... 44 4.1.1 击球手... 44 4.1.2 投球手... 46 4.1.3 XML数据的组织... 46 4.2...

    XML基础教程-电子教案.rar

    XML基础教程-电子教案...XML基础教程、第2章 XML语法、第3章 使用DTD规范XML文档、第4章 使用CSS格式XML文档、第5章 使用XSL转换XML文档、第6章 使用DSO显示XML文档、第7章 使用DOM访问XML文档、第8章 XML网络应用实例

    XML轻松学习手册--XML语法之一

    创建XML文档必须遵守下列重要规则:必须有XML声明语句;是否有DTD文件;如果文档是一个\"有效的XML文档\"(见上一章),那么文档一定要有相应DTD文件,并且严格遵守DTD文件制定的规范。注意你的大小写,在XML 文档中,...

    xml语法检验DTD文件

    xml语法检查文件DTD的介绍和简单应用,是ppt课件

    xml语法合法性 xml 格式验证xml格式检查 shell awk sed实现

    shell awk sed实现xml语法合法性 xml 格式验证xml格式检查 。不需要scheam文件,只验证符号的合法性

    XML 基本语法,里面较详细

    XML 基本语法,里面详细介绍了XML 基本语法,欢迎大家收藏。

    XML轻松学习手册--XML概念之一

    XML的第一个词是\"扩展性\",这正是XML强大的功能和弹性的原因。XML的第二个词是\"标识\",这表明了XML的目的是标识文档中的元素...虽然XML的扩展性允许你创建新标识,但它仍然必须遵循特定的结构,语法和明确的定义。

    xml语法详解

    xml语法 此资源 对于xml进行的详细的介绍,内包含约束等知识点,很详细

    xml 数据库教程 xml语法

    xml 数据库教程。个人收集,欢迎查看,下载。

    WEB11-XML.rar-源代码

    a, 说出 XML 标签的语法 b, 写出 XML 的注释 c, 说出 XML 标签的属性语法 d, 说出 XML 标签的 CDATA 区 4,能够列举 DOM 和 SAX 解析的区别 a, 说出 DOM 解析的原理 b, 说出 SAX 解析的原理 c, 列举支持 DOM...

    xml部分语法ppt

    xml语法xml语法xml语法xml语法xml语法

    xml入门经典-part3(中文版)

    第2章 XML语法 2.1 标记语法 2.1.1 字符 2.1.2 命名 2.2 文档部分 2.3 元素 2.3.1 起始标记 2.3.2 结束标记 2.3.3 空元素标记 2.3.4 标记:一个简单的例子 2.3.5 文档元素 2.3.6 子元素 2.3.7 元素嵌套 ...

    XML轻松学习手册--XML语法之三

    namespaces通过给标识名称加一个网址(URL)定位的方法来区别这些名称相同的标识。entity翻译为\"实体\"。...一种是我们这里说的普通entity,在XML文档中使用;另一种是参数entity,在DTD文件中使用。

Global site tag (gtag.js) - Google Analytics