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-->,注释不允许嵌套
注释内容中不要出现—
不要把注释放在标记中间
注释不可以嵌套
可以再除标记以外的任何地方使用注释
属性中不能出现不能出现<,>,&,
实体:
内置五种实体:
< less than 小于号 <
> ;grtater than 大于号 >
& 连字符 &
" ; 双引号 “”
' 单引号 ‘’
自定义实体:
<!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:可以包含任何字符数据,但是不能在其中包含任何子元素。
纯元素类型:只能包含子元素,并且这些子元素外没有文本。
混合类型:包含子元素和文本数据的混合体。
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,但是可以 具有由空格分开的多个引用。
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;©right;</author>
2.实体定义:外部实体:
语法:<!ENTITY 实体名SYSTEM “URI/URL”>
关于普通实体与参数实体:
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则不是。
DTD的局限性:
-DTD不遵守XML语法
-DTD数据类型有限(与数据库数据类型不一致)
-DTD不可扩展
-DTD不支持命名空间(命名冲突)
Schema的星特性:
-Schema基于xml语法
-可以用能处理xml文档的工具处理。
-大大扩充了数据类型,可以自定义数据类型。
-支持元素的继承-Object-Oriented
-支持属性组。
2.所有的schema文档,其根元素必须为Schema
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元素的内容的类型的限定