首页 > 网页制作 > XML/XSLT

浅谈XML代码编写的编码与验证问题

admin XML/XSLT 2022-02-06 15:54:09 XML   编码   验证"

编码

编码就是转换 Unicode 字符为等价二进制表示的过程。XML 处理程序读取一个 XML 文档时,它依赖于编码类型来编码文档。因此,我们需要在 XML 声明中指定编码类型。

编码类型
主要有两种类型的编码:

UTF-8
UTF-16
UTF 表示 UCS 转换格式,而 UCS 本身的意义是通用字符集。编号 8 或者 16 表示呈现字符的比特数。它们是 8(一个字节)或者 16(两个字节)。对于没有编码信息的文档,默认使用 UTF-8。

语法
编码信息包含在 XML 文档的序言部分。UTF-8 编码的语法如下:

XML/HTML Code复制内容到剪贴板
  1. <?xml version="1.0" encoding="UTF-8" standalone="no" ?>  

UTF-16 编码语法如下:

XML/HTML Code复制内容到剪贴板
  1. <?xml version="1.0" encoding="UTF-16" standalone="no" ?>  

示例

下面的例子展示了编码声明:

XML/HTML Code复制内容到剪贴板
  1. <?xml version="1.0" encoding="UTF-8" standalone="no" ?>  
  2. <contact-info>  
  3.     <name>Tanmay Patilname>  
  4.     <company>TutorialsPointcompany>  
  5.     <phone>(011) 123-4567phone>  
  6. contact-info>  

在上面的 encoding="UTF-8" 示例中,指定使用 8 位表示字符。要使用 16 为表示字符,可以使用 UTF-16 编码。

使用 UTF-8 编码的 XML 文件尺寸比 UTF-16 格式的文件更小。

验证

验证 就是对 XML 文档进行验证的过程。如果文档内容与元素,属性和关联的文档类型定义(DTD)匹配,以及文档符合b表达的约束则该文档被认为是有效的。通过 XML 解析器处理验证的方式有两种。分别是:

格式良好的 XML 文档
有效的 XML 文档
格式良好的 XML 文档
如果 XML 文档遵守以下规则则被认为是格式良好的。

没有 DTD 的 XML 文档必须使用预定义的字符实体处理 amp(&),apos(单引号),g(>),quot(双引号)。
必须遵循标签的顺序,比如内部标签必须在外部标签闭合之前闭合。
每个开始标签必须都有一个结束标签或者必须是一个自闭合标签(... 或者 )。<br />在开始标签中必须只能有一个属性,并且需要使用引号包裹。<br />除了amp(&),apos(单引号),g(>),quot(双引号)实体之外其他的必须先声明再使用。<br />示例</p> <p>下面是一个格式良好的 XML 文档示例:</p> <span class="lantxt">XML/HTML Code</span><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_5804')">复制内容到剪贴板</span> <ol class="dp-xml"> <li class="alt"><span><span class="tag"><?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span> </span><span class="attribute">standalone</span><span>=</span><span class="attribute-value">"yes"</span><span> </span><span class="tag">?></span><span>  </span></span></li> <li><span><!DOCTYPE address   </span></li> <li class="alt"><span>[   </span></li> <li><span><!ELEMENT address (name,company,phone)</span><span class="tag">></span><span>  </span></li> <li class="alt"><span>    <!ELEMENT name (#PCDATA)</span><span class="tag">></span><span>  </span></li> <li><span>    <!ELEMENT company (#PCDATA)</span><span class="tag">></span><span>  </span></li> <li class="alt"><span>    <!ELEMENT phone (#PCDATA)</span><span class="tag">></span><span>  </span></li> <li><span>]</span><span class="tag">></span><span>  </span></li> <li class="alt"><span></span><span class="tag"><</span><span class="tag-name">address</span><span class="tag">></span><span>  </span></li> <li><span>    </span><span class="tag"><</span><span class="tag-name">name</span><span class="tag">></span><span>Tanmay Patil</span><span class="tag"></</span><span class="tag-name">name</span><span class="tag">></span><span>  </span></li> <li class="alt"><span>    </span><span class="tag"><</span><span class="tag-name">company</span><span class="tag">></span><span>TutorialsPoint</span><span class="tag"></</span><span class="tag-name">company</span><span class="tag">></span><span>  </span></li> <li><span>    </span><span class="tag"><</span><span class="tag-name">phone</span><span class="tag">></span><span>(011) 123-4567</span><span class="tag"></</span><span class="tag-name">phone</span><span class="tag">></span><span>  </span></li> <li class="alt"><span></span><span class="tag"></</span><span class="tag-name">address</span><span class="tag">></span><span>  </span></li> </ol> <p>上面的示例被认为是格式良好的,因为:</p> <p>它定义了文档类型。并且这里文档类型是元素类型。<br />包含一个名为 address 的根元素。<br />每个子元素 name,company 和 phone 都是一个自解释正确闭合的标签。<br />标签的顺序正确。</p> <span id="art_bot" class="jbTestPos"></span> </div> <div class="pagebar"> </div> <div class="pcd_ad"><script src=/d/js/acmsd/thea14.js></script></div> <div class="mbd_ad"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5850285417076520" data-ad-slot="9825815134" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="rights"> <h5>版权声明</h5> <p>本文仅代表作者观点,不代表本站立场。<br> 本文系作者授权发表,未经许可,不得转载。<br>本文地址:/web/XML/77409.html</p> <div class="bdsharebuttonbox"><a href="#" class="bds_more" data-cmd="more"></a><a href="#" class="bds_fbook" data-cmd="fbook" title="分享到Facebook"></a><a href="#" class="bds_twi" data-cmd="twi" title="分享到Twitter"></a><a href="#" class="bds_linkedin" data-cmd="linkedin" title="分享到linkedin"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#" class="bds_douban" data-cmd="douban" title="分享到豆瓣网"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a><a href="#" class="bds_evernotecn" data-cmd="evernotecn" title="分享到印象笔记"></a></div> <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"1","bdSize":"24"},"share":{},"image":{"viewList":["fbook","twi","linkedin","qzone","tsina","douban","weixin","evernotecn"],"viewText":"分享到:","viewSize":"16"}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='/static/api/js/share.js?v=89860593.js?'];</script> </div> <div class="r-pn-post"> <div class="shang"><a href="javascript:void(0)" class="prev_p"><span>上一篇 :</span> 很抱歉没有了 </a></div><div class="xia"><a href="/web/XML/77411.html" rel="bookmark" class="next_p"><span>下一篇 :</span> 解析XML对代码中的空白处理</a></div> <div class="clear"></div> </div> </div> <div class="related"> <h4>相关文章</h4> <ul> <li> <a href="/ITzixun/5302.html"> <div class="img"><img src="http://www.diannaoxianka.com/d/file/2020-11-13/qpbrpcs1pifqpbrpcs1pif.gif" alt="支撑史上最流畅猫晚 阿里推首款全自研4K实时硬件编码器XGH265"></div> <p>支撑史上最流畅猫晚 阿里推首款全自研4K实时硬件编码器XGH265</p> </a> </li><li> <a href="/3Dsheji/171449.html"> <div class="img"><img src="https://img.jbzj.com/do/uploads/litimg/151210/1616122N260.jpg" alt="flash中XML文档怎么定义节点属性?"></div> <p>flash中XML文档怎么定义节点属性?</p> </a> </li><li> <a href="/3Dsheji/171496.html"> <div class="img"><img src="https://img.jbzj.com/do/uploads/litimg/151210/1616122N260.jpg" alt="flash怎么修改XML文档的数据?"></div> <p>flash怎么修改XML文档的数据?</p> </a> </li><li> <a href="/3Dsheji/170383.html"> <div class="img"><img src="https://img.jbzj.com/file_images/flash/20081061295221877801.gif" alt="关于XML在FLASH中的应用"></div> <p>关于XML在FLASH中的应用</p> </a> </li><li> <a href="/3Dsheji/168511.html"> <div class="img"><img src="https://img.jbzj.com/file_images/article/201407/20140724145420238.jpg" alt="Flash+ASP+XML+Access开发留言本(图文教程)"></div> <p>Flash+ASP+XML+Access开发留言本(图文教程)</p> </a> </li><li> <a href="/jtjc/win10/168210.html"> <div class="img"><img src="https://img.jbzj.com/file_images/article/201304/2013041111252664.jpg" alt="win7系统中msxml3.dll的问题(开机出现损坏的图像)"></div> <p>win7系统中msxml3.dll的问题(开机出现损坏的图像)</p> </a> </li><li> <a href="/Hardware/diannaochangshi/162418.html"> <div class="img"><img src="https://img.jbzj.com/file_images/article/201311/201311041016302.jpg" alt="ID3V2是什么意思 id3v2编码类型是什么"></div> <p>ID3V2是什么意思 id3v2编码类型是什么</p> </a> </li><li> <a href="/3Dsheji/164589.html"> <div class="img"><img src="https://img.jbzj.com/file_images/article/201402/20140225144346105.jpg" alt="Flash cs6怎么创建XML文档?"></div> <p>Flash cs6怎么创建XML文档?</p> </a> </li> </ul> </div> <div class="post_comments"> <div id="comment"> <link href="/skin/ecmspl/css/pl.css" rel="stylesheet"> <div class="showpage" id="plpost"> <table width="100%" border="0" cellpadding="0" cellspacing="0" style="line-height: 25px; padding: 5px 3px 1px 8px; font-size: 18px;"> <tr><td><strong><font color="#333333">留言与评论(共有 <span id="infocommentnumarea">0</span> 条评论)</font></strong></td></tr> </table> <script> function CheckPl(obj) { if(obj.saytext.value=="") { alert("您没什么话要说吗?"); obj.saytext.focus(); return false; } return true; } </script> <form action="/e/pl/doaction.php" method="post" name="saypl" id="saypl" onsubmit="return CheckPl(document.saypl)"> <table width="100%" border="0" cellpadding="0" cellspacing="0" id="plpost"> <tr> <td> <table width="100%" border="0" cellspacing="10" cellpadding="0"> <tr> <td> <script src="/e/pl/loginjspl.php"></script> <textarea name="saytext" rows="6" id="saytext" placeholder="请遵守互联网相关规定,不要发布广告和违法内容!"></textarea> <script src="/d/js/js/plface.js"></script>    <table width='100%' align='left' cellpadding=3 cellspacing=1 bgcolor='#FFF'> <tr> <td width="80%" height="40" bgcolor="#FFFFFF">验证码:<input name="key" type="text" class="inputText" size="16" /> <img src="/e/ShowKey/?v=pl" align="absmiddle" name="plKeyImg" id="plKeyImg" onclick="plKeyImg.src='/e/ShowKey/?v=pl&t='+Math.random()" title="看不清楚,点击刷新" /> </td> <td width="20%" height="40" bgcolor="#FFFFFF"> <input name="sumbit" type="submit" value="提交评论" tabindex="6" style="border-radius: 5px;font-size: 16px;background: #e94c3d none repeat scroll 0% 0%;border: 0px none;margin: 0px 16px;padding: 1px 16px;height: 33px;line-height: 30px;color: rgb(255, 255, 255);opacity: 0.95;"> <input name="id" type="hidden" id="id" value="77409" /> <input name="classid" type="hidden" id="classid" value="49" /> <input name="enews" type="hidden" id="enews" value="AddPl" /> <input name="repid" type="hidden" id="repid" value="0" /> <input type="hidden" name="ecmsfrom" value="/web/XML/77409.html"> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table></form> <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> <tr> <td bgcolor="#FFFFFF" id="infocommentarea"></td> </tr> </table> <script src="/e/extend/infocomment/commentajax.php?classid=49&id=77409"></script> </div> </div> </div> <div class="pcd_ad"><script src=/d/js/acmsd/thea18.js></script></div> <div class="mbd_ad"> <!-- 手机广告位-评论底部广告位新 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5850285417076520" data-ad-slot="9383780240" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <script type="text/javascript" src="//gg.iwyv.com/production/mh_g/i/static/wi_djn.js"></script> </div> </div> <!--@ mainl--> <div class="mainr"> <div class="widget widget_ad"> <script src=/d/js/acmsd/thea14.js></script> </div> <div class="widget widget_hotpost"> <h4>热门文章</h4> <ul> <li><i class="red">1</i><a href="/web/XML/77413.html" target="_blank">详解XML中的代码注释书写方法</a></li> <li><i class="red">2</i><a href="/web/XML/77511.html" target="_blank">详解XML中的模式Schema</a></li> <li><i class="red">3</i><a href="/web/XML/77411.html" target="_blank">解析XML对代码中的空白处理</a></li> <li><i>4</i><a href="/web/XML/77415.html" target="_blank">详解XML中的文档与声明用法</a></li> <li><i>5</i><a href="/web/XML/77417.html" target="_blank">UML建模-面向对象设计:为什么要学习UML</a></li> <li><i>6</i><a href="/web/XML/77455.html" target="_blank">XML入门教程:元素声明-XML/XSLT</a></li> <li><i>7</i><a href="/web/XML/77525.html" target="_blank">了解WEB页面工具语言XML(一)产生背景</a></li> <li><i>8</i><a href="/web/XML/77422.html" target="_blank">XML入门教程:XSLT-XML/XSLT</a></li> <li><i>9</i><a href="/web/XML/77489.html" target="_blank">XML教程:通过一个例子来学习XML的语法</a></li> <li><i>10</i><a href="/web/XML/77521.html" target="_blank">XML模式:FIXML和SVG</a></li> </ul> </div> <div class="widget widget_ad"> <script src=/d/js/acmsd/thea10.js></script> </div> <div class="widget widget_previous"> <h4>最近发表</h4> <ul> <li><a href="/ITzixun/178187.html">日本雷蛇官网实习生上错价了?游戏本只卖15950日元?</a></li> <li><a href="/youxi/175574.html">《原神》物归原主又归原主世界任务指南 游戏攻略</a></li> <li><a href="/youxi/175631.html">《原神》振晶的研究第三天试用角色2000分攻略 游戏攻略</a></li> <li><a href="/youxi/175559.html">《原神》2.6版全旋曜玉帛点位说明_蒙德 游戏攻略</a></li> <li><a href="/youxi/175547.html">《原神》2.6版深渊11-1守护镇石技巧 游戏攻略</a></li> <li><a href="/youxi/175604.html">《原神》神里绫华装备搭配推荐 游戏攻略</a></li> <li><a href="/youxi/175516.html">《原神》云堇突破材料获取方法 游戏攻略</a></li> <li><a href="/youxi/175494.html">《原神》世界任务他乡迷失客攻略 游戏攻略</a></li> <li><a href="/youxi/175497.html">《原神》神里绫华全面培养指南 神里绫华技能详解与出装建议 游戏攻略</a></li> <li><a href="/youxi/175460.html">《原神》神里绫人平民向大世界配队思路 游戏攻略</a></li> </ul> </div> <div class="widget widget_ad"> <script src=/d/js/acmsd/thea11.js></script> </div> <div class="widget widget_tags"> <h4>标签列表</h4> <ul> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E5%BC%80%E6%94%BE%E4%B8%96%E7%95%8C">开放世界</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E6%B2%99%E7%9B%92">沙盒</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=win10">win10</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=3D%E8%AE%BE%E8%AE%A1">3D设计</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=PS">PS</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E9%AC%BC%E8%B0%B7%E5%85%AB%E8%8D%92">鬼谷八荒</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=win7">win7</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E6%89%8B%E6%B8%B8">手游</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E5%9B%A2%E9%98%9F%E7%AB%9E%E6%8A%80">团队竞技</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E5%8E%9F%E7%A5%9E">原神</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E4%BA%8C%E6%AC%A1%E5%85%83%E6%B8%B8%E6%88%8F">二次元游戏</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E7%AD%96%E7%95%A5">策略</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E7%94%B5%E8%84%91%E5%B8%B8%E8%AF%86">电脑常识</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80">王者荣耀</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E7%85%A7%E7%89%87%E5%A4%84%E7%90%86">照片处理</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=MySQL">MySQL</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E5%90%83%E9%B8%A1">吃鸡</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E7%AC%94%E8%AE%B0%E6%9C%AC">笔记本</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E7%BB%9D%E5%9C%B0%E6%B1%82%E7%94%9F%E5%A4%A7%E9%80%83%E6%9D%80">绝地求生大逃杀</a></li> <li class="submenu"><a target="_blank" href="/e/tags/?tagname=%E5%B0%84%E5%87%BB%E7%AB%9E%E4%BA%89">射击竞争</a></li> </ul> </div> <div class="widget widget_ad"> <script src=/d/js/acmsd/thea12.js></script> </div> </div> </div> </div> <script type="text/javascript"> // JavaScript Document function goTopEx(){ var obj=document.getElementById("goTopBtn"); function getScrollTop(){ return document.documentElement.scrollTop || document.body.scrollTop; } function setScrollTop(value){ if(document.documentElement.scrollTop){ document.documentElement.scrollTop=value; }else{ document.body.scrollTop=value; } } window.onscroll=function(){getScrollTop()>0?obj.style.display="":obj.style.display="none"; var h=document.body.scrollHeight - getScrollTop() - obj.offsetTop - obj.offsetHeight; obj.style.bottom=0+"px"; if(h<350){ obj.style.bottom=340+"px"; obj.style.top="auto"; } } obj.onclick=function(){ var goTop=setInterval(scrollMove,10); function scrollMove(){ setScrollTop(getScrollTop()/1.1); if(getScrollTop()<1)clearInterval(goTop); } } } </script> <!--向上 --> <div id="jz52top" > <span> <DIV style="DISPLAY: none" id="goTopBtn" ><a title="返回顶部" class="jz52topa" ><b>返回顶部</b></a></DIV> </span> <SCRIPT type=text/javascript>goTopEx();</SCRIPT> <span> <ul id="navmenu"> <li><a title="QR Code" class="jzqr" ><b>QR Code</b></a> <ul> <div id="jzqrn"> <img src="/skin/ecms172/images/weixin.png" width="228" height="228" /> <p>打开手机扫描上面的二维码</p> </div> </ul> </li> </ul> </span> </div> <!--向上完 --> <!-- 底部广告--> <!-- 底部广告--> <!--底部信息 --> <div class="ft_wp"> <div id="ft" class="wp cl ftddd" > <div class="ft_info" > <div class="ft_z1"> <p>潘少俊衡</p> <h3 class="ft_z_zdxx_zx"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?1cc50873f5e983e8073d99a425b87921"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <span class="pipe"> | </span> 桂ICP备2023010378号-4 </h3> <h2 class="ft_z_zdxx_zx"> <p style="font-size:12px;">Powered By <a href="https://www.iwyv.com/" title="潘少俊衡" target="_blank">EmpireCMS</a> </p> </h2> </div> <div class="ft_z2"> </div> <div class="ft_z2"> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-XFMBHZNTEL"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XFMBHZNTEL'); </script> <p><a target="_blank" href="https://www.iixiang.com/">爱享小站</a></p> <p><a target="_blank" href="https://www.sdzdyn.com/">中德益农</a></p> <p><a target="_blank" href="https://www.guujie.com">谷姐神农</a></p> <p><a target="_blank" href="https://huanyafeiliao.com/">环亚肥料</a></p> </div> <div class="ft_z2"> <p><a target="_blank" href="https://beian.miit.gov.cn/Integrated/index">桂ICP备2023010378号-4</a></p> <p><a href="https://beian.miit.gov.cn" title="桂公网备 45012202000125号" target="_blank">桂公网备 45012202000125号</a></p> </div> <div class="ft_z2"> <p><a target="_blank" href="https://www.iwyv.com/panshaoSEO/1277.html">联系我们</a></p> </div> <div class="ft_z2"> <p><a target="_blank" href="https://www.iwyv.com/panshaoSEO/1277.html">商业合作</a></p> <p><a target="_blank" href="https://www.iwyv.com/panshaoSEO/1277.html">广告投放</a></p> <p><a target="_blank" href="/tgxz/">投稿须知</a></p> </div> <div class="ft_bx"style="left:335px;"> </div> <div class="ft_bx ft_t1"> </div> <div class="ft_bx ft_t2"> </div> <div class="ft_bx ft_t3"> </div> <div class="ft_bx ft_t4"> </div> <div class="ft_z3"> <dd> <span><img src="/skin/ecms172/images/weixin.png" width="75" height="72.2" /></span> <p> <!-- 引用官方图标 --> <!-- 引用官方图标百度统计 --> </p> <p>使用手机软件扫描微信二维码</p> <p>关注我们可获取更多热点资讯</p> <p>感谢潘少俊衡友情技术支持</p> </dd> </div> </div> </div> </div> <div class="clear"></div> <!--底部信息完 --> <script src="/skin/ecms172/js/common.min.js" type="text/javascript"></script> <script></script> </body> </html>