分析XML代码编写的编码与验证问题

本文介绍了编码过程中的UTF-8和UTF-16,强调了在XML文档中指定编码的重要性,并详细讲解了格式良好XML文档的验证规则,包括DTD的使用和元素结构的要求。
摘要由CSDN通过智能技术生成

  编码

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

  编码类型

  主要有两种类型的编码:

  UTF-8

  UTF-16

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

  语法

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

  XML/HTML Code复制内容到剪贴板

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

  UTF-16 编码语法如下:

  XML/HTML Code复制内容到剪贴板

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

  示例

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

  XML/HTML Code复制内容到剪贴板

  <?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(双引号)。

  必须遵循标签的顺序,比如内部标签必须在外部标签闭合之前闭合。

  每个开始标签必须都有一个结束标签或者必须是一个自闭合标签(<title>...</title> 或者 <title />)。

  在开始标签中必须只能有一个属性,并且需要使用引号包裹。

  除了amp(&),apos(单引号),g(>),quot(双引号)实体之外其他的必须先声明再使用。

  示例

  下面是一个格式良好的 XML 文档示例:

  XML/HTML Code复制内容到剪贴板

  <?xml 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>

  上面的示例被认为是格式良好的,因为:

  它定义了文档类型。并且这里文档类型是jingyan.cwqu.com元素类型。

  包含一个名为 address 的根元素。

  每个子元素 name,company 和 phone 都是一个自解释正确闭合的标签。

  标签的顺序正确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值