大家好,小乐又来了,好久不见!这次接着上次可扩展标记语言XML之一:XML概念,作用,示例,继续讲述XML。

一、格式良好的 xml

1、语法规范:

1)、必须有 XML 文档声明:

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

说明:

XML standalone 定义了外部定义的 DTD 文件的存在性. standalone element 有效值

是 yes 和 no. 如下是一个例子:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE s1 PUBLIC "http://www.ibm.com/example.dtd" "example.dtd">
<s1>.........</s1>

值 no 表示这个 XML 文档不是独立的而是依赖于外部所定义的一个 DTD. 值 yes 表

示这个 XML 文档是自包含的(self-contained).

注意文本文件保存时候默认的编码格式是ANSI,需用记事本把它手动改为UTF-8保存。

2)、必须有且仅有一个根元素

3)、严格区分大小写

4)、属性值用引号(双引号或单引号) :等号分开的名称-值对;在一个元素上,相同的属

性只能出现一次

5)、标记成对;

6)、空标记关闭;

7)、元素正确嵌套。

2、元素命名规则

1)、名称中可以包含字母、数字或者其他可见字符;

2)、名称不能以数字开头;

3)、不能以 XML/xml/Xml…开头;

4)、名称中不能含空格;

5)、名称中不能含冒号(注:冒号留给命名空间使用)

3、实体

实体叫 ENTITY,实体的作用是避免重复输入。作用相当于宏或者变量。

1)内置的 5 种实体

实体 符号

< <

> >

& &

" "

' '

2)自定义实体

<!DOCTYPE 根元素[
<!--实体声明-->
<!ENTITY 实体名 "实体内容">
]>
使用已定义的实体:&实体名;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sxt[
<!--实体声明-->
<!ENTITY xm "明明">
<!ENTITY gen "保密">
]>
<sxt>
<teacher>
<name>明明</name>
<gender>保密</gender>
</teacher>
<!--引用实体的方法-->
<teacher>
<name>&xm;</name>
<gender>&gen;</gender>
</teacher>
</sxt>

4、文档类型声明

文档类型定义——DOCTYPE,文档类型声明,紧跟 XML 声明之后,包含所有实体声明

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE 根元素标记名[
<!--实体声明-->
]>

二、XML 文档组成

1、构成

所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:

元素

属性

实体

PCDATA

CDATA

CDATA 节(character data)

2、CDATA

用于把整段文本解释为纯字符数据而不是标记的情况。如包含大量的<、>、&、或者"

字符。CDATA 节中的所有字符都会被当做元素字符数据的常量部分,而不是 XML 标记,

可以输入除]]>外任意字符,不能嵌套。

<![CDATA[ ...... ]]>

3、PCDATA

PCDATA 的意思是被解析的字符数据(parsed character data)。 可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。

PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。

文本中的标签会被当作标记来处理,而实体会被展开。

不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 >的内置实体来分别替换它们。

关注乐字节,更多技术文章随时奉上

可扩展标记语言XML之二:XML语言格式规范、文档组成的更多相关文章

  1. spring整合mybatis错误:Caused by: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 62; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "configuration"。

    运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:Caused by: org.xml.sax.SAXParseE ...

  2. SpringSecurity权限管理系统实战—二、日志、接口文档等实现

    系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...

  3. XML学习笔记(二)-- DTD格式规范

    标签(空格分隔): 学习笔记 XML的一个主要目的是允许应用程序之间自由交换结构化的数据,因此要求XML文档具有一致的结构.业务逻辑和规则.可以定义一种模式来定义XML文档的结构,并借此验证XML文档 ...

  4. Java 添加条码、二维码到Word文档

    本文介绍如何在Word文档中添加条码.二维码.可在文档正文段落中添加,也可在页眉页脚中添加.下面将通过Java代码示例介绍如何实现. 使用工具:Free Spire.Office for Java(免 ...

  5. Java 添加条码、二维码到PDF文档

    本文介绍如何通过Java程序在PDF文档中添加条码和二维码.创建条码时,可创建多种不同类型的条码,包括Codebar.Code11.Code128A.Code128B.Code32.Code39.Co ...

  6. 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数

    目录: »  plot 最常用的二维曲线绘图函数 >  帮助文档 >  基本使用语法 >  线条的样式.符号和颜色调整 >  图形属性调整 >  使用图形句柄进行设置 » ...

  7. 【MongoDB学习之二】MongoDB数据库、文档、集合、元数据

    环境 MongoDB 4.0 CentOS6.5_x64 一.连接语法格式: mongodb://[username:password@]host1[:port1][,host2[:port2],.. ...

  8. {03--CSS布局设置} 盒模型 二 padding bode margin 标准文档流 块级元素和行内元素 浮动 margin的用法 文本属性和字体属性 超链接导航栏 background 定位 z-index

    03--CSS布局设置 本节目录 一 盒模型 二 padding(内边距) 三 boder(边框) 四 简单认识一下margin(外边距) 五 标准文档流 六 块级元素和行内元素 七 浮动 八 mar ...

  9. MongoDB-4: 查询(二-数组、内嵌文档)

    一.简介 我们上一篇介绍了db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段,我们今天介绍了对数组和内嵌文档的查询操作,尤其是 ...

  10. 从架构开始谈dubbo(二)-----zookeeper安装和dubbo文档查阅

    一.Zookeeper下载与安装 1.官网地址下载 https://zookeeper.apache.org/ 2.找到图中英文位置(英文不好,安图操作就好了,计算机很多东西如果你没法很好的记忆,就画 ...

随机推荐

  1. nginx设置反向代理,获取真实客户端ip

    upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡. upstream abc.com { server 127.0.0.1:8080; server 127.0 ...

  2. AndroidStudio中Flutter打包APK

    1.生成签名文件 在打包之前我们需要一个签名文件,证明文件的唯一性. keytool -genkey -v -keystore F:\APP\sign.jks -keyalg RSA -keysize ...

  3. 学到了林海峰,武沛齐讲的Day49 django

    django 终于等到啦,好东西上场了 blog---- 个体应用文件 model.py 数据库文件 views.py 视图文件 admin.py 后台文件,操纵数据库文件 manage.py --- ...

  4. jar包更新

    打包新的jar包 java -jar xx.jar 本地测试后 删除旧的jar包 然后要重启jar包

  5. Lightning Web Components 组件样式(四)

    要将样式与组件进行绑定,需要创建一个同名的样式文件,这样样式将会自动应用到组件 在组件中定义的样式的作用域是属于组件的,这样允许组件可以在不同的上下文中可以复用, 可以阻止其他组件的样式的复写 css ...

  6. python内置模块2

    十五.shutil模块 ==================================================================== shutil模块是python为我们封 ...

  7. [USACO12MAR]花盆 二分 单调队列

    [USACO12MAR]花盆 二分 单调队列 存在一个长度为\(x\)的区间\([l,r]\),使得区间中最大值与最小值差至少为\(w\),求这个最小的\(x\) \(n\le 100000\),\( ...

  8. assert(0)的作用

    捕捉逻辑错误.可以在程序逻辑必须为真的条件上设置断言.除非发生逻辑错误,否则断言对程序无任何影响.即预防性的错误检查,在认为不可能的执行到的情况下加一句ASSERT(0),如果运行到此,代码逻辑或条件 ...

  9. Java 面向对象(九)

    常用类之Random Random类位于 java.util 包中,主要用于生成伪随机数 Random类将种子数作为随机算法的起源数字,计算生成伪随机数,其与生成的随机数字的区间无关 创建Random ...

  10. pyqt5设置背景图片出现问题

    在使用pyqt5时,用qtdesign设置好背景图片,如何设置自行百度,预览没问题,用ptuic5转换为代码却发现显示不了: 首先:我在qtdesign中导入的是pic.qrc,但是转换的代码最后一句 ...