java补完——JavaScript 中 xml 基本使用、约束(未完成)
作者:互联网
文章说明:黑色字体-已知,蓝色字体-所见即所得,红色字体-还需要再找资料弄明白的,黄色背景-提炼关键信息
参考资料:很多参考资料,段落下有原文链接到原作者
XML基本使用
一、xml 概述
1、xml 简介
xml 是w3c组织发布的技术,xml 有两个版本,1.0和1.1的版本,一般使用的是1.0的版本,因为1.1的版本不能向下兼容
xml(eXtensible Markup Language):可扩展标记语言,使用标签来操作,标签可以扩展,HTML里面的标签是固定的,每个标签都有特定的含义,而xml 的标签可以自己定义,还可以写中文标签
xml 可以像HTML一样用于显示数据,但这不是主要功能,xml 主要是用来存储数据的
2、xml 的应用
不同系统之间的数据传输
用来表示生活中有关系的数据
经常使用在配置文件中
二、xml 语法
1、xml 文档申明
创建一个文件,后缀名为 .xml
文档申明:写 xml 文件时必须要有文档申明,表示为 xml 文件:<?xml version="1.0" encoding="gbk"?> 文档申明必须写在第一行第一列
属性:
version:xml 的版本
encoding:xml 编码,有 gbk、utf-8、iso8859-1(不包含中文)
standalone:是否需要依赖其他文件 yes/no
乱码问题:保存时的编码要和设置打开时的编码一致,不然会出现乱码
2、xml 元素定义
标签定义必须有开始和结束
标签没有内容可以在标签内结束
标签可嵌套
一个xml中,只能有一个根标签
在xml中会把空格和换行当成内容来解析,以下两个是不一样的
<a>oneStar</a>
<a>
oneStar
</a>
3、xml 标签的命名规则
xml 代码区分大小写
xml 标签不能以数字和下划线开头
xml 标签不能以 xml、XML、Xml开头
xml 标签不能包含空格和冒号
4、xml 中属性定义
一个标签上可以有多个属性
属性名不能相同
属性名称和属性值之间用 =,属性值用引号
xml 属性的名称规范和元素的名称规范一致
5、xml 中特殊字符
特殊字符 替代符号
& &
< <
> >
" "
' &apos
6、CDARA 区
解决多个字符都需要转义的操作
把内容放到 CDATA 里面,可以直接按 文本输出
eg:<![CDATA[ if(a<b && b<c && d>f){}]]>
7、PI 指令(处理指令)
在 xml 中设置样式
写法:<?xml-stylesheet type=“text/css” href=“css的路径”?>
设置样式,只能对英文标签起作用,对中文不起作用
XML约束
1、dtd 约束
【1】编写步骤
看 xml 中有多少个元素,有几个就在 dtd 文件中写几个 <!ELEMENT>
判断元素是简单元素还是复杂元素
简单元素:没有子元素
<!ELEMENT 元素名称 (#PCDATA)>
复杂元素:有子元素的元素
<!ELEMENT 元素名称 (子元素)>
需要在 xml 文件中引入 dtd 文件
<!DOCTYPE 根元素名称 SYSTEM “dtd文件的路径”>
【2】xml 文件引入 dtd 文件方法
内部引入
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
]>
外部引入
本地:<!DOCTYPE 根元素名称 SYSTEM “dtd文件路径”>
网络:<!DOCTYPE 根元素名称 PUBLIC “dtd名称” “dtd文件的URL”>
【3】dtd 元素定义
语法:<!ELEMENT 元素名 约束>
简单元素:<!ELEMENT name (#PCDATA)>
(#PCDATA):约束 name 是字符串类型
EMPTY:约束元素为空
AND:约束任意元素
复杂元素:<!ELEMENT student (name+,age?,sex*)>
<!ELEMENT 元素名称 (子元素)>
表示元素出现的次数:
+:表示一次或者多次
?:表示零次或者一次
*:表示零次或者多次
子元素直接使用逗号隔开
表示元素出现的顺序
子元素直接使用 | 隔开
表示元素只能出现其中的任意一个
【4】dtd 属性定义
语法:<!ATTLIST 元素名称 属性名称 属性类型 属性的约束>
属性类型
CDATA:字符串
| :枚举(aa|bb|cc)
ID:值只能是字符串或者下划线开头
属性的约束
#REQUIRED:表示属性必须存在
#IMPLIED:表示属性可有可无
#FIXED:表示一个固定值
直接值:直接设置
【5】dtd 定义实体
语法:<!ENTITY 实体名称 “实体的值”> rg:<!ENTITY NAME “一颗星”>
使用实体:&NAME;
2、schema 约束
【1】属性
在 schema 文件里面开头有几个属性
xmlns=“http://www.w3.org/2001/XMLSchema”
表示当前xml是一个约束文件
targetNamespace=“http://www.oneStar.cn”
使用schema约束文件,直接通过这个地址引入约束文件,可以是个随意的地址
elementFormDefault=“qualified”>
表示质量良好
【2】特点
schema 是 xml 语句,符合 xml 语法
一个 xml 中可以有多个 schema,多个 schema 使用命名空间来区分
dtd 文件里面只有 PCDATA 类型,但 schema 里面可以支持更多的数据类型
schema 语法更加的复杂
以 .xsd 为后缀名
【3】编写步骤
看 xml 中有多少个元素,有多少个元素就写多少个 <element>
看是简单元素还是复杂元素
复杂元素:
<complexType>
<sequence>
子元素
</sequence>
</complexType>
简单元素:写在复杂元素里面
<sequence>
<element name=“name” type=“string”>
</sequence>
在 xml 中引入 xsd 文件
<person xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
表示该文件时被约束文件
xmlns=“http://www.oneStar.cn”
是约束文件里面的 targetNamespace
xsi:schemaLocation=“http://www.oneStar.cn person.xsd”>
targetNamespace + 空格 + 约束文档的地址路径
【4】复杂元素指示器
<sequence>:表示元素的出现顺序
<all>:表示元素只能出现一次
<choice>:表示元素只能出现其中一个
<maxOccurs=“unbounded”>:表示元素出现的次数,unbounded表示不限制次数
<any></any>:表示任意元素
【5】约束属性
位置:写在复杂元素里面的 </complexType> 之前
<attribute name=“id1” type=“int” use=“required”>
name:属性名称
type:属性类型 int string
use:属性是否必须出现 required
原文链接:https://blog.csdn.net/One_L_Star/article/details/100073337
原文链接:https://blog.csdn.net/One_L_Star/article/details/100030146
标签:xml,补完,java,文件,标签,元素,约束,属性 来源: https://blog.csdn.net/weixin_44470080/article/details/104524359