xml 基础 学习

Altove XMLSpy编辑器 北京圣思园xml培训视频 ppt

1. eXtensible Markup Language(可扩展的标记语言)。

Xml:数据交换的需要;电子商务的基础;可扩展;

Xml核心技术:

文档描述、验证、约束技术——DTD/Schema(模式)

文档转换技术——XSL

数据查询技术——Xpath

连接技术——Xlink/Xpointer

编程接口——DOM/SAX

每一个xml文档都有且只有一个根元素 root Element。所谓根元素,就是唯一一个包含了其他所有元素的元素。

Xml描述的是文档的内容与语义。而不是文档应如何显示。

对于xml文档来说,<?处理标记必须要顶格写,前面不能有任何的空白。

Xml元素可以具有属性,属性的形式为:属性名=“属性值”。属性值需要使用单引号或者双引号括起来。多个属性之间使用空格分开。

通过样式,我们可以实现xml内容与展现形式的分离。

在一个元素上,相同的属性只能出现一次。

XML文档--属性

属性值用双引号”” 或者单引号’’

一个元素上面,一个属性只能出现一次

Xml的注释:

<!-- comments-->,注释不允许嵌套

注释内容中不要出现—

不要把注释放在标记中间

注释不可以嵌套

可以再除标记以外的任何地方使用注释

属性中不能出现不能出现<,>,&,

实体:

内置五种实体:

&lt; less than 小于号 <

&gt ;grtater than 大于号 >

&amp; 连字符 &

&quot ; 双引号 “”

&apos; 单引号 ‘’

自定义实体:

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

实体的使用:

定义:<!DOCTYPE company[

<!ENTITY shengsiyuan “圣思园”>

]>

使用:(不要忘记分号)<company>

<name>&shengsiyuan;</name>

</company>

Xml专用标记 CDATA节

用于整段文本解释为纯文字数据而不是标记的情况。

语法:<![CDA TA[…………]]>

可以输入任意字符

不能嵌套

文档的类型定义:DOCTYPE

格式正规wellformed的xml文档

语法规范: 必须有xml声明语句<?xml version=”1.0” endcoding=”gb2312”>;

必须有且仅有一个根元素; 标记大小写敏感; 属性值用双引号; 标记成对; 空标记关闭; 元素正确嵌套;

元素语法:名称中可以包含数字,字母,或者其他字符;名称不能以数字开头;不能以XML,Xml……开头;不能包含空格;名称中不能包含:(冒号);

冒号留给命名空间使用

使用xml可以实现异构语言、异构平台之间的交互。

DTD(文档类型定义)

Document Type Definition

有效的(valid)xml文档:首先xml文档是个格式正规的xml文档,然后又需要满足DTD的要求,这样的xml文档称为有效的xml文档。

DTD文档类型定义:Document Type Definition

DTD用来描述xml文档的结构:一个DTD文档包含:

元素(Element)的定义规则;元素之间的关系规则;属性(ATTLISt)的定义规则;可使用的实体(ENTITY)或者符号(NOTATION)规则

DTD文档与xml文档实例的关系:类与对象;数据库表结构与数据记录;

DTD文档的声明及引用:

内部DTD文档: <!DOCTYPE 根元素 [定义内容]>

外部DTD文档: <!DOCTYPE 根元素 SYSTEM “DTD文件路径”>

内外部DTD文档结合:<!DOCTYPE 根元素 SYSTEM “DTD文件路径” [定义内容]>

DTD的手写:

<!DOCTYPE poem[

<!ELEMENT poem(author,title,content)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT content (#PCDATA)>

]>

#PCDATA:Parsed Character Data,可解析的字符数据,也就是字符串。

1. 元素的定义:

语法:

<!ELEMENT NAME CONTENT>

关键字 元素名称 元素类型

2. 元素的类型:

EMPTY :该元素不能包含子元素和文本,但可以有属性。

ANY:该元素可以包含任何在DTD中定义的元素内容。

#PCDATA:可以包含任何字符数据,但是不能在其中包含任何子元素。

纯元素类型:只能包含子元素,并且这些子元素外没有文本。

混合类型:包含子元素和文本数据的混合体。

xml 基础 学习

xml 基础 学习

1. 元素的属性的定义:

<!ATTLIST 元素名称 属性名称 属性类型 属性特点>

2. 元素的属性的类型:

1) CDATA:字符串

(

#PCDATA:定义元素类型;

CDATA:定义元素的属性的类型。

CDATA节:其中的文本不被编译

)

2) NMTOKEN是CDATA的一个子集,表示属性值必须是;英文字母,数字,句号,破折号,下划线或者冒号,属性值不能含有空格。

3) ID:表明该属性的取值必须是惟一的。

<!ELEMENT 公司职员 ANY>

<!ATTLIST 公司职员 ID #REQUIRED编号 CDATA #REQUIRED>

4) I DREF属性的值指向文档中其他地方声明过的ID类型的值。

5) IDREDFS同IDREF,但是可以 具有由空格分开的多个引用。

xml 基础 学习

6) Enumerated:

3. 元素的属性的特点:

<!ATTLIST 元素名 属性名 属性类型 属性特点>

1) #REQUIRED

元素的所有实例都必须有该属性的值.

<!ATTLIST 元素名 属性名 属性类型 #REQUIRED>

2) #IMPLIED

元素的实例可以忽略该属性

<!ATTLIST 元素名 属性名 属性类型 #IMPLIED>

3) #FIXED value

元素实例中该属性的值必须为指定的固定值.

<!ATTLIST 元素名 属性名 类型 #FIXED “value”>

4) Default value

为属性提供一个默认值.如果有提供就覆盖value,否则则为value

<!ATTLIST 元素名 属性名 类型 “value”>

定义实体:

1.内部实体:

<!ENTITY 实体名 “实体值”>

DTD实例:<!ENTITY write “Donald Duck”>

<!ENTITY copyright “Copyright W3Schools”>

Xml示例:<author>&write;&copyright;</author>

2.实体定义:外部实体:

语法:<!ENTITY 实体名SYSTEM “URI/URL”>

xml 基础 学习

关于普通实体与参数实体:

1. 普通实体是在dtd中定义,xml中使用,使用的格式为:&address;

2. 参数实体是在dtd中定义,dtd中使用,定义的时候使用%,使用的时候也是用%,

3. 普通外部实体的定义方式是:

<!ENTITY address SYSTEM “http://www.baidu.com”>表示使用http://www.baidu.com网址的内容来替换掉address,而不是使用http://www.baidu.com字符串本身。

4. 参数外部实体的定义方式:

<!ENTITY % address SYSTEM “http://www.baidu.com”>表示 使用http://www.baidu.com网址的内容来替换掉address,而不是使用http://www.baidu.com字符串本身。

命名空间:Namespace

使用URL作为XML的Namespaces;

命名空间的语法定义:

Xmlns:[prefix]=”URL”

……………………………………………XML Lesson2……………………………………..

1.Schema(模式)详解

XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。

XML Schema规定XML文档实例的结构和每个元素/属性的数据类型。

其作用与dtd一样,也是用于验证xml文档的有效性,只不过他提供了比dtd更强大的功能和更细粒度的数据类型,另外Schema还可以自定义数据类型。此外,Schema也是一个xml文件,而dtd则不是。

xml 基础 学习

DTD的局限性:

-DTD不遵守XML语法

-DTD数据类型有限(与数据库数据类型不一致)

-DTD不可扩展

-DTD不支持命名空间(命名冲突)

Schema的星特性:

-Schema基于xml语法

-可以用能处理xml文档的工具处理。

-大大扩充了数据类型,可以自定义数据类型。

-支持元素的继承-Object-Oriented

-支持属性组。

2.所有的schema文档,其根元素必须为Schema

xml 基础 学习

xml 基础 学习

xml 基础 学习

xml 基础 学习

xml 基础 学习

Schema元素:

作用:包含已定义的shema;Schema的根元素。有且只有一个。

用法:<xs:schema>

属性:-xmlns

-targetNamespace

element元素:

作用:声明一个元素

属性:-name;名字

-type; 类型

-minOccurs;做小出现次数

-maxOccurs:最大出现次数(unbounded 未绑定的,不限的)

-substitutionGroup;

-fixed:

-defaulet:

Group:组元素:

作用:把一组元素声明组合在一起,以便他们能够一起呗复合类型使用

属性:name/ref

Attribute:属性

作用:声明一个属性

属性:name/type/ref/use

AttributeGroup:

作用:把一组属性声明组合在一起,以便可以被复合类型使用。

属性:name/ref

SimpleType元素:

作用:定义一个简单类型,它决定了元素和属性值的约束和相关信息。

属性:name;

内容:应用已经存在的简单类型,三种方式:

-restriction:限定一个范围,即一个约束条件

Enumeration(枚举)

MinExclusive(大于等于)

minInclusive(大于不等于)

-list:从列表中选择,即从一个特定数据类型的集合中,选择定义一个简单类型元素。

<xs:simpleType name="mySimpleType">

<xs:list itemType="xs:date"/>

</xs:simpleType>

-union:包含一个值的结合,即从一个特定简单数据类型的集合中,选择定义一个简单类型元素。

<xs:simpleType>

<xs:union memberTypes="roadbikeSize mountainbikeSize"/>

</xs:simpleType>

ComplexType复杂类型:

作用:定义一个复合类型,它决定了一组元素和属性值的约束和相关信息。

属性:name

complexType与simpleType区别(重要)

simpleType类型的元素中不能包含元素或者属性。

当需要声明一个元素的子元素和(或)属性时,用compleType;

当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType;

ComplexType——simpleContent

作用:应用于complexType元素上,对它的内容进行约束和扩展

关键点:使用simpleContent之后,当前的complexType元素下不可以包括子元素,但可以有属性。也就是使用simpleContent之后,要使用Attribute。否则的话,该complexType可以使用simpleType代替。有simpleContent没有Attribute的complexType就是simplexType。

ComplexType——Extension

作用:对当前的 complexType元素的内容的类型的限定

转载于:https://www.cnblogs.com/Lin267307031/archive/2013/03/04/2942852.html