XML语法大全(6)

2019-03-28 21:01

关于命名空间的最后一点是关于它们使用的属性。默认情况下,属性与它包含的元素属于同一个命名空间中。除非你使用的是不同于其包含元素的其他命名空间中定义的属性,否则就不必进行验证。

在关于如何使用DTD和XML模式定义XML词汇的内容中,将会进一步说明命名空间的重要性。

2.2 定义XML词汇

基于XML的语言通称为XML词汇,可以用DTD、XML模式或是其他模式语言对其加以定义。很多工业组织共同定义了他们自己的XML词汇。

如果需要使用XML词汇,就必须了解其构造规则。这些规则是产生符合语言构造标准的有效的XML文档的保证。

这些规则也使XML处理程序可以检查XML文档的一致性。这个过程称为有效性检查,进行这项工作的处理程序称为有效性解析器。第1章提供了一些如何处理XML文档的信息。

可以通过编写模式来共享XML词汇的规则。这是一个人或有效性处理器都可用的规范描述。如果只是在某个孤立的应用程序中使用XML文档,这种词汇的制定可能显得过分了。其真正的意义在于,当这个语言需要被其他人或应用程序共享时,每个用户都可以检查文档是否构造正确。

有两种常用的模式:DTD和XML模式。它们都由W3C定义并由他们控制。实际上,DTD本身就是XML推荐标准的一部分。

这里还是使用第1章中DVD库的例子:

首先看看如何建立一个DTD来描述这个词汇。

2.2.1 文档类型定义

DTD描述的是文档的结构,它指明一个元素可以出现多少次、它是否可选的以及它是否包含属性等等。

有效性解析器可以根据其DTD来检查一个XML文档是否有效。如果不是,解析器会报告一个错误。符合某个DTD的XML文档称为该DTD的一个文档实例。

本书并不是一部关于DTD的完整参考手册,但它包含了理解和构造DTD所需要的足够的信息。下面的DTD定义了DVD库文档:

这份文档被保存为dvd.dtd,可以在本书下载资源中找到。引用这个DTD的XML文档称为dvd_dtd.xml,其实叫什么名字并不重要。

这个DTD中演示了两种声明的类型,一种用于声明元素,另一种用于声明属性。其中还可以添加实体和符号的声明。但是符号声明并不常用,所以在稍后的“实体声明”部分中只对实体声明加以介绍。

1.元素类型声明

元素类型声明提供的是关于元素的信息。该声明以!ELEMENT文本开始并且列出元素名及其内容。内容可以是数据类型或是列在DTD中的其他元素:

空元素中显示的是EMPTY:

在下面的DTD例子中,元素包含了三个其他元素:、<format>和<genre>: </p><p> </p><p>其中元素的顺序也指定了它们应该出现在XML文档实例中的位置。 解析字符数据(PCDATA)说明元素的内容是文本,并且XML解析器应该将此文本解析成字符和实体引用。<title>、<format>和<genre>声明中将它们的内容类型定义为了PCDATA: </p><p> </p><p>可以用一些修饰符来对子元素提供进一步说明。这些修饰符可参见表2-1。 表2-1 DTD中元素类型定义所用的符号 符 号 </p><p>, + | () * ? </p><p> </p><p>解 释 </p><p>规定子元素的顺序 </p><p>规定元素必须出现至少一次(一次或</p><p>多次) </p><p>允许从一组元素中选择一个元素 将内容标记成一个组 </p><p>规定元素为可选,可以出现任意多次(零次或多次) </p><p>规定元素为可选,如果出现,只能有一次(零次或一次) </p><p>无符号表示元素必须出现一次 </p><p><DVD>元素中包含了一个+号,这表明该元素必须至少出现一次,也可出现多次: </p><p>2.属性列表声明 </p><p>属性声明出现在元素声明之后,它更复杂一些。可以通过添加属性列表声明表明元素中包含属性: </p><p> </p><p>本行中,<DVD>元素有一个必需的称为id的属性,其中包含的是CDATA。 </p><p>注解 设置必须属性时并不会影响DTD中其他元素的声明。在该元素中包含子元素,而且也称为id,是完全</p><p>可以的。 </p><p>最常用的属性类型为CDATA,但也可以声明为其他的类型: </p><p>l ID:一个唯一的识别符; l IDREF:另一个元素的ID ; l IDREFS:其他元素的一列ID; l NMTOKEN:一个有效的XML名字; l NMTOKENS:一列有效的XML名字; l ENTITY:一个实体名字; l ENTITIES:一列实体名字; l LIST:一列特定值。 </p><p>关键字#REQUIRED表明此属性必须存在。也可以用#IMPLIED来表明一个可选属性。用#FIXED来表明此属性只能有一个值。如果XML没有包含这个属性,有效性解析器就会插入一个固定值。使用不是固定值的值会产生解析器错误。 </p><p>如果需要指定属性可选的值,可以使用管道字符(|): </p><p> </p><p>此行表明<product>元素有一个color属性,其可能的值为红色、绿色或蓝色,默认值为红色。 </p><p>3.实体声明 </p><p>第1章中介绍了如何使用内建实体类型,也提到了可以自己定义实体以表示固定的数据。例如,可以将实体引用©right;指定为文本Copyright 2006 Apress。在DTD中可以这样定义这个实体: </p><p> </p><p>这是个简单的内部实体声明。也可引用外部实体并用它将大量的内容包含在XML文档中。这与在XHTML文档中使用服务器端的包含文件比较类似。 </p><p>下面的XML文档引用了几个实体: </p><p> </p><p>这个文档从几个实体中取得它的内容,每个实体都代表一个外部XML文档。DTD需要为每个实体都添加一个声明。例如,可以将tableOfContenets实体定义如下: </p><p> </p><p>4.将DTD关联到XML文档 </p><p>目前已经介绍了如何构造DTD,但还没说明如何将之关联到XML文档。可以将DTD嵌入到XML文档内部,也可在文档中添加对外部DTD的引用。 </p><p>对外部DTD的引用可以添加在XML文档的序言中: </p><p> </p><p>也可将DTD直接嵌入到XML文档的序言中: </p><p></p> <br /> <p><script type="text/javascript">s("content-m");</script></p> </div> <div class="m-pages"><li><a>共8页: </a></li><li><a href='553821_5.html'>上一页</a></li><li><a href='553821.html'>1</a></li><li><a href='553821_2.html'>2</a></li><li><a href='553821_3.html'>3</a></li><li><a href='553821_4.html'>4</a></li><li><a href='553821_5.html'>5</a></li><li class="thisclass"><a href='#'>6</a></li><li><a href='553821_7.html'>7</a></li><li><a href='553821_8.html'>8</a></li><li><a href='553821_7.html'>下一页</a></li></div> <div class="down-word"> <div class="word-ico"></div> <div class="word-tit"> <span class="docx">XML语法大全(6).doc</span> <span>将本文的Word文档下载到电脑</span> <span>下载失败或者文档不完整,请联系客服人员解决! </span> </div> <div class="word-pic"><a href="javascript:;">下载这篇word文档</a></div> </div> </article> <div class="art-prenext"> <p>下一篇:<a href="/wenku/zonghe/553820.html">南开中学初2016届14-15学年(上)期末试题——物理</a></p> </div> <script type="text/javascript">s("like-m");</script> <div class="main-tab"><a class="on" href="javascript:;">相关阅读</a></div> <div class="tab-box"> <ul class="main-new on clearfix"> <li><a href="/wenku/zonghe/1263351.html" title="石油大学《化工原理二》2021期末考试答案">石油大学《化工原理二》2021期末考试答案</a></li> <li><a href="/wenku/zonghe/1157609.html" title="建筑节能检测习题集(84页)">建筑节能检测习题集(84页)</a></li> <li><a href="/wenku/zonghe/215568.html" title="高考物理(考点解读命题热点突破)专题06 机械">高考物理(考点解读命题热点突破)专题06 机械</a></li> <li><a href="/wenku/zonghe/215769.html" title="1 2014.10.23第一次财务会计理论与实务课堂笔">1 2014.10.23第一次财务会计理论与实务课堂笔</a></li> <li><a href="/wenku/zonghe/215778.html" title="通信资源管理系统介绍(GIS)">通信资源管理系统介绍(GIS)</a></li> <li><a href="/wenku/zonghe/215564.html" title="年产60万吨PTA项目环境影响报告书">年产60万吨PTA项目环境影响报告书</a></li> <li><a href="/wenku/zonghe/215563.html" title="2016小学生读书笔记范文">2016小学生读书笔记范文</a></li> <li><a href="/wenku/zonghe/215562.html" title="Dhlrwk谈中学生英语学习策略">Dhlrwk谈中学生英语学习策略</a></li> <li><a href="/wenku/zonghe/215560.html" title="数电课程设计报告 洗衣机自动控制电路">数电课程设计报告 洗衣机自动控制电路</a></li> <li><a href="/wenku/zonghe/215558.html" title="2018年最新 湖南省长沙市长郡中学2018届上学">2018年最新 湖南省长沙市长郡中学2018届上学</a></li> </ul> </div> <div class="main-tab"><a class="on" href="javascript:;">本类排行</a></div> <div class="tab-box"> <ul class="main-new on clearfix"> <li><a href="/wenku/zonghe/175782.html" title="云客服基础考试">云客服基础考试</a></li> <li><a href="/wenku/zonghe/158762.html" title="《红星照耀中国--》名著阅读练习题及答案">《红星照耀中国--》名著阅读练习题及答案</a></li> <li><a href="/wenku/zonghe/176003.html" title="红星照耀中国练习题及答案">红星照耀中国练习题及答案</a></li> <li><a href="/wenku/zonghe/171844.html" title="《红星照耀中国》练习题">《红星照耀中国》练习题</a></li> <li><a href="/wenku/zonghe/159778.html" title="人教部编版2018-2019学年八年级语文上册第一">人教部编版2018-2019学年八年级语文上册第一</a></li> <li><a href="/wenku/zonghe/183326.html" title="化工导论试题">化工导论试题</a></li> <li><a href="/wenku/zonghe/182252.html" title="八年级上册名著导读练习——《红星照耀中国》">八年级上册名著导读练习——《红星照耀中国》</a></li> <li><a href="/wenku/zonghe/162180.html" title="人教版语文八(上)名著导读《红星照耀中国》练">人教版语文八(上)名著导读《红星照耀中国》练</a></li> <li><a href="/wenku/zonghe/185266.html" title="2018年江苏省第八届就业创业知识竞赛题库(全7">2018年江苏省第八届就业创业知识竞赛题库(全7</a></li> <li><a href="/wenku/zonghe/168880.html" title="《红星照耀中国》导读及练习题附答案">《红星照耀中国》导读及练习题附答案</a></li> </ul> </div> </div> <footer class="footer"> <p class="bt-links"><a href="https://m.77cn.com.cn">手机版</a><span class="v-line">|</span><a href="https://www.77cn.com.cn">PC版</a><span class="v-line">|</span><a href="https://m.77cn.com.cn/fww">范文大全</a></p> <p>Copyright © 2019-2022 免费范文网 版权所有<br/> 声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。<br/>客服QQ: 邮箱:tiandhx2@hotmail.com<br/> <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">苏ICP备16052595号-18</a> </p> <div style="display:none;"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6e245478384fea490ec3a2317ee103ab"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> <div class="theme-popover"> <div class="theme-poptit"> <a href="javascript:;" title="关闭" class="close">×</a> <b>注册会员免费下载</b>(下载后可以自由复制和排版) </div> <div class="theme-popbod dform"> <!--<p class="downtit">下载本文档需要支付 <i>7</i> 元</p>--> <!--<p class="chose"><span>支付方式:</span><span class="pay1"><img src="https://www.77cn.com.cn/img/wxpay.jpg" class="over"></span> <span class="pay2"><img src="https://www.77cn.com.cn/img/alipay.jpg"></span></p>--> <!--<div class="youke_pay">--> <!--<div class="wxpay"><a href="javascript:;">微信支付并下载</a></div>--> <!--<div class="alipay" style="display:none;"><a href="javascript:;">支付宝支付并下载</a>--> <!--</div>--> <!--</div>--> <p class='wxpay'><a href='https://www.77cn.com.cn/user/index.php'>马上注册会员</a></p> <p class="downtxt">注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。<br>微信: QQ:</p> </div> </div> <div class="theme-popover-mask"></div> <script> //menu $(".header .menu").on("click", function(){ $("body").append("<div class=\"mask-bg menu-mask-bg\"></div>"); $(".menu-slide").show(); $("html,body").css({height:$(window).innerHeight(), overflow:"hidden"}); setTimeout(function(){ $(".menu-slide").css({transform:"translateX(-50px)"}); },50) }); $("body").on("click", ".menu-mask-bg", function(){ $(".menu-slide").css({transform:"translateX(-100%)"}); $(".menu-mask-bg").remove(); $("html,body").removeAttr("style"); setTimeout(function(){ $(".menu-slide").hide(); },300) }); //search $(".header .search").click(function(){ if($(".search-box").is(":hidden")){ $(this).children("i").removeClass("search-icon").addClass("close-icon"); $(".search-box").fadeIn("fast"); }else{ $(this).children("i").removeClass("close-icon").addClass("search-icon"); $(".search-box").fadeOut("fast"); } }); //nav if($(".nav").length > 0) { var nav = new Swiper(".nav",{ slidesPerView: "auto" }); } </script> <script> $(".pay1 img").click(function () { $(".wxpay").css("display", "block"); $(".alipay").css("display", "none"); $(".pay1 img").addClass("over"); $(".pay2 img").removeClass("over"); }); $(".pay2 img").click(function () { $(".wxpay").css("display", "none"); $(".alipay").css("display", "block"); $(".pay1 img").removeClass("over"); $(".pay2 img").addClass("over"); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { $('.word-pic a').click(function(){ $('.theme-popover-mask').fadeIn(100); $('.theme-popover').slideDown(200); $(".vip-up").hide(); $(".vip-pay").hide(); var downid = '553821' $('.wxpay a').click(function(){ var payurl = 'https://www.77cn.com.cn/hupipay/payment_pay_tz.php?payway=wx&aid='; payurl = payurl.replace('payment', 'youke'); var gotourl = payurl + downid location.href = gotourl; }); $('.alipay a').click(function(){ var payurl = 'https://www.77cn.com.cn/hupipay/payment_pay_tz.php?payway=ali&aid='; payurl = payurl.replace('payment', 'youke'); var gotourl = payurl + downid location.href = gotourl; }); }) $('.theme-poptit .close').click(function(){ $('.theme-popover-mask').fadeOut(100); $('.theme-popover').slideUp(200); }) }) </script> <script src="/js/gobacktop.js" type="text/javascript"></script> </body> </html>