详细介绍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>代码编写的编码与验证问题的详细内容,更多请关注www.sxiaw.com其它相关文章!</p> <button type="button" class="ask_text test-iframe-handle"> </button> </div> </article> <aside class="swnetnews"> <div class="lis"> <span><i>推荐内容</i></span> <ul> <li><a href="/doc/3878.html" title="PHP扩展之XML操作(一)——SimpleXML" target="_blank">PHP扩展之XML操作(一)——SimpleXML</a></li><li><a href="/doc/7634.html" title="char数组如何转string" target="_blank">char数组如何转string</a></li><li><a href="/doc/6641.html" title="vscode使用ctrl+c不能粘贴" target="_blank">vscode使用ctrl+c不能粘贴</a></li><li><a href="/doc/2648.html" title="phpstudy无法启动apache" target="_blank">phpstudy无法启动apache</a></li><li><a href="/doc/5131.html" title="wamp环境下怎么修改phpmyadmin数据库地址" target="_blank">wamp环境下怎么修改phpmyadmin数据库地址</a></li><li><a href="/doc/3670.html" title="一文分享oracle ocp教程" target="_blank">一文分享oracle ocp教程</a></li><li><a href="/doc/3228.html" title="Golang中如何实现函数重载" target="_blank">Golang中如何实现函数重载</a></li><li><a href="/doc/1477.html" title="探讨golang fmt包中不同函数之间的区别" target="_blank">探讨golang fmt包中不同函数之间的区别</a></li><li><a href="/doc/2777.html" title="归纳整理Oracle创建用户与表空间知识点" target="_blank">归纳整理Oracle创建用户与表空间知识点</a></li><li><a href="/doc/5767.html" title="getchar()的功能是什么" target="_blank">getchar()的功能是什么</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-forgetpwd.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></p> </div> </div> </body> </html>