xml基础笔记

IT知识
428
0
0
2022-07-06

<!-- 注释 -->

一、文档声明:必须在文件开头

1、<?xml version="1.0" encoding="gbk">

属性:

(1)version: 版本号

(2)encoding: 编码

(3)standalone: 是否需要依赖其他文件

2、<![CDATA[ 内容]]>:内容中出现的特殊符号不需要转义

二、xml的约束

1、dtd约束 和 schema约束

2、dtd约束:

(1)<!ELEMENT 元素名 约束>

约束:

<1>如果有子元素,就写子元素列表

(元素名1[+/?/*],元素名2...)

+: 一次或多次

?: 零次或一次

*: 任意次

','换成'|': 在列出元素中选择一个

',': 表示元素必须按指定的顺序出现

<2>没有子元素,写元素类型

(#PCDATA): 字符串类型

EMPTY:元素为空

ANY: 任意

(2)dtd定义元素属性:

<!ATTLIST 元素名 属性名 属性类型 属性约束>

<1>属性类型:

CDATA: 普通文本字符串

ENUMERATED: 枚举(枚举值1|枚举值2...)

ID: 取值不能重复

<2>属性约束:

#REQUIRED: 必须出现

#IMPLIED: 可有可无

#FIXED: 固定值:#FIXED "固定值"

直接值:默认值

(3)定义运用实体:(写在内部dtd里,否则有些浏览器取不到值)

<!ENTITY 实体名 "实体内容">

在xml中引用: &实体名;

(4)xml文件中引入:

使用本地dtd文件: <!DOCTYPE 根元素名 SYSTEM "dtd文件路径">

使用内部dtd: <!DOCTYPE 根元素名 [ dtd代码 ]>

使用网络的dtd: <!DOCTYPE 根元素名 PUBLIC "dtd名称" "dtd文档的url">

3、schema约束:

(1)特点:

符合xml的语法

一个xml中可以有多个schema,多个schema使用名称空间区分(类似java的包)

schema中支持更多的数据类型

(2)<schema></schema>:最外层标签

标签写法为:<

schema xmlns="
http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/1"
xmlns:tns="http://www.example.org/1"
elementFormDefault="qualified">

属性:

xmlns: 默认使用的名称空间

targetNamespace: 声明该文档中的元素属于哪个命名空间

xmlns:tns: 该文档使用的元素和数据类型来自哪个命名空间,同时来自这个命名空间的元素和数据类型应该使用前缀xsd:

elementFormDefault="qualified": 指出XML文档使用在此schema中声明过的元素必须被命名空间限定

(3)<element></element>: 定义元素

<1>若有子元素:

<element><complexType><元素指示器>子element元素</元素指示器></complexType></element>

元素指示器:

sequence: 表示元素是有顺序的

all: 表示只能出现一次

Choice: 只能出现其中一个

设置属性:(放在</complexType>前)

<attribute></attribute>

属性:

name: 名称

type: 类型

use: 是否必须有

<2>若无子元素:

<element></element>

属性:

name: 数据名称

type: 数据类型

maxOccurs: 表示出现次数,="unbounded"时无限制

<any></any>: 可以出现任意元素

4、xml文件中引入:

<根元素名 xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.example.org/1"
xsi:schemaLocation="http://www.example.org/1 1.xsd">

属性:

xmlns: 声明默认约束来自哪个名称空间

xsi:schemaLocation: 引入的名称空间和哪个xsd文件对应,第一个为名称空间, 第二个为xsd文件路径.