详细介绍XML代码编写的编码与验证问题

xml encoding="utf-8" ?>

这篇文章主要介绍了XML代码编写的编码与验证问题,与HTML类似,XML文件的编码也能在序言部分被指定,需要的朋友可以参考下

编码

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

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

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

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

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

UTF-16 编码语法如下:

<?xml version="1.0" encoding="UTF-16" standalone="no" ?>

示例

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

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>  
<contact-info>  
    <name>Tanmay Patil</name>  
    <company>TutorialsPoint</company>  
    <phone>(011) 123-4567</phone>  
</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>下面是一个格式良好的 <a href="/tag-news-name-XML-p-1.html">XML</a> 文档示例:</p><pre><?<a href="/tag-news-name-xml-p-1.html">xml</a> version="1.0" encoding="UTF-8" standalone="yes" ?> <!DOCTYPE address [ <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)> ]> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address></pre><p></p><p>上面的示例被认为是格式良好的,因为:</p><p>它定义了文档类型。并且这里文档类型是元素类型。<br>包含一个名为 address 的根元素。<br>每个子元素 name,company 和 phone 都是一个自解释正确闭合的标签。<br>标签的顺序正确。</p> <p>以上就是详细介绍<a href="/tag-news-name-XML-p-1.html">XML</a>代码编写的编码与验证问题的详细内容,更多请关注其它相关文章!</p> <button type="button" class="ask_text test-iframe-handle"> </button> </div> </article> <script type="text/javascript" src="/index.php?s=hits-show-id-1179-type-insert-sid-news" charset="utf-8"></script><aside class="swnetnews"> <div class="lis"> <span><i>推荐内容</i></span> <ul> <li><a href="/doc/2074.html" title="具体分析Pull方式解析XML的示例代码" target="_blank">具体分析Pull方式解析XML的示例代码</a></li><li><a href="/doc/10091.html" title="win10如何创建家庭组" target="_blank">win10如何创建家庭组</a></li><li><a href="/doc/10701.html" title="小米8手机打开放大镜功能的图文教程" target="_blank">小米8手机打开放大镜功能的图文教程</a></li><li><a href="/doc/9797.html" title="在导航犬中设置绕开收费路线的图文教程" target="_blank">在导航犬中设置绕开收费路线的图文教程</a></li><li><a href="/doc/3666.html" title="Go语言中如何实现动态方法" target="_blank">Go语言中如何实现动态方法</a></li><li><a href="/doc/6804.html" title="简析PHP拆红包算法" target="_blank">简析PHP拆红包算法</a></li><li><a href="/doc/4179.html" title="15个PHP关于高并发的面试题(总结)" target="_blank">15个PHP关于高并发的面试题(总结)</a></li><li><a href="/doc/2855.html" title="如何修改Oracle的文件路径" target="_blank">如何修改Oracle的文件路径</a></li><li><a href="/doc/874.html" title="值得一看的Python高效数据处理" target="_blank">值得一看的Python高效数据处理</a></li><li><a href="/doc/3165.html" title="C#中.NET框架的简介" target="_blank">C#中.NET框架的简介</a></li> </ul> </div> </aside> </main> <script> // first, find all the div.code blocks document.querySelectorAll('pre').forEach(el => { // then highlight each hljs.highlightElement(el); hljs.lineNumbersBlock(el); }); </script> <link rel="stylesheet" type="text/css" href="/kan/css/basezb.css"> <script type="text/javascript" src="/kan/js/read.js"></script> <div style="display:none"> <div class="login-box" id="login-dialog"> <div class="login-top"><a rel="nofollow" id="login1" onclick="setTab('login',1,2);" >登录</a></div> <div class="login-form" id="nav-signin"> <!-- <div class="login-ico"><a rel="nofollow" class="qq" id="qqlogin" target="_blank" href="/user-center-qqlogin.html"> QQ </a></div> --> <div class="login-box-form" id="con_login_1"> <form id="loginform" action="/user-center-login.html" method="post" onsubmit="return false;"> <p class="int-text"> <input class="email" id="username" name="username" type="text" value="用户名或Email" onfocus="if(this.value=='用户名或Email'){this.value='';}" onblur="if(this.value==''){this.value='用户名或Email';};" ></p> <p class="int-text"> <input class="password1" type="password" id="password" name="password" value="******" onBlur="if(this.value=='') this.value='******';" onFocus="if(this.value=='******') this.value='';" > </p> <p class="int-info"> <label class="ui-label"> </label> <label for="agreement" class="ui-label-checkbox"> <input type="checkbox" value="" name="cookietime" id="cookietime" checked="checked" value="2592000"> <input type="hidden" name="notforward" id="notforward" value="1"> <input type="hidden" name="dosubmit" id="dosubmit" value="1">记住我的登录 </label> <a rel="nofollow" class="aright" href="/user-center-resetpasswdstep.html" target="_blank"> 忘记密码? </a></p> <p class="int-btn"><a rel="nofollow" id="loginbt" class="loginbtn"><span>登录</span></a></p> </form> </div> </div> </div> </div> </div> <script type="text/javascript" src="/kan/js/foot_js.js"></script> <div id="footer"> <div class="w1200"> <p class="tips_text">本网站为非赢利性站点,本网站所有内容均来源于互联网相关站点自动搜索采集信息,相关链接已经注明来源。</p> <p class="tips_text">Copyright © 2004-2018 https://www.sxiaw.com. All Rights Reserved.<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?fa236be8ec7680639fbd4ee307fd0c69"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <a href="http://beian.miit.gov.cn/" target="_blank">津ICP备2023001793号-1</a><a href="http://sxiaw.com/gb-p-1.html" target="_blank">问题反馈</a></p> </div> </div> </body> </html>