XML

xml语法
XML标记文本,用来描述数据的性质和结构,严格区分大小写,有且只能有一个根元素,属性值必须放在 引号中,空格不会自动删除,标记可以随便定义并且可拓展

一个完整的XML文档中必须包含一个XML文档声明该声明必须位于文档的第一行

1.版本声明

2.文档编码声明

3.独立文档声明
standalone="yes";独立文档不依赖外部文档
standalone="no"

特殊字符处理
特殊字符

&-----&
<-----<
>----->
"------"
'-------&apos

CDATA区
是Character data的简写不想被程序解析的一段原数据可以放在CDADA中
用法

XML的解析方式概述

1、解析方式:(W3C)
DOM:Document Object Model文档对象模型
Node:节点
Document:代表整棵树
Element:元素
Attr:属性(只有元素才有属性)
Text:文本
有点:增删改查方便,简单
缺点:需要读取整个xml才能构建DOM树。对于比较大的xml,容易导致内存溢出。
l SAX:Simpl API for Xml

利用JAXP开发包:DOM解析
1、常用的XML解析器:
JAXP、Dom4J、JDom
2、JAXP:
存在JDK中,SUN公司提供。
Java API for XML Processing=JAXP
由以下包:
org.w3c.dom:标准和规范(学习规范)
javax.xml:具体的实现

dtd约束

2、约束技术:DTD(简单,面临着淘汰) Schema
3、DTD:
约定了xml文件中可以出现的元素、属性等,及他们的顺序和个数。
DTD约束,文件的扩展名.dtd
4、编写DTD的方式:
方式一:dtd内容和xml都在xml文件中
直接把dtd的内容写在xml文件中。
比如:

    
    
        
        
        
                  
    ]>
    <书架>
         
    

方式二:dtd作为单独的文件存在(推荐)。文件扩展名.dtd,文件必须用UTF-8编码保存到磁上。

根据它的语法创建的文件称为DTD文件

1.(书+)表示至少有一个书元素
2.书是元素名称,(书名,作者,售价)是书的子元素必须按照顺序出现
3.
4.
5.#PCDATA普通文本字符串

引入外部DTD文件有两种方式
1.
2.
还可以采用内嵌的方式
DTD定义语句
]>
EMPTY:表示元素不包含字符数据是一个空元素.br是一个没有内容的元素
ANY:表示元素可以包含任意的子元素和字符数据

属性定义

属性名1 属性类型 设置说明
属性名 2 属性类型 设置说明
.>

设置说明
1.#REQUIRED
元素属性是必须的
2.#IMPLIED
元素可以包含该元素
3.#FIXED
一个固定的属性默认值
4.默认值
如果元素不包含该元素,该属性将自动设置为DTD中定义的默认值
属性类型
1.CDATA
2.Enumerated
3.ID用于唯一标识XML文档中的一个元素
4.IDREF和IDREFS可以使两个元素建立一对一的关系
5.NOTATION不易用XML组织的数据
6.NMTOKEN表示一种列表类型
7.ENTITY和ENTITYS

Schema约束

名称空间
唯一标识一个元素或者属性
属性名称必须以xmlns:作为前缀<元素名 xmlns:prefixname="URL">
默认名称空间<元素名 xmlns="URL">

引入Schema文档
1.使用名称空间引入XML Schema文档
需要通过属性xsi:schemaLocation来声明名称空间的文档,
2.不使用名称空间引入
xsi:noNamespaceschemaLocation

语法
元素定义

属性定义

简单类型
xs:simpleType
限制xs:restriction
xs:minInclusive,xs:maxInclusive对值的限定
xs:enumeration元素对一组值的限定
xs:pattern元素对一组值的限定
xs:restriction元素对空白符的限定

复杂类型
xs:simpleContent

XML中如何引入Schema约束(必须掌握)

1、查看Schema文档,找出根元素


XML_第1张图片

2、根元素来自哪个名称空间
查看Schema的文档,找到targetNamespace的取值,在xml中用xmlns关键字声明该名称空间。”itheima”就是给名称空间取了一个短名称。


XML_第2张图片

3、名称空间和哪个xsd文件对应?
使用schemaLocation来制定名称空间和xsd文件的对应关系


XML_第3张图片

4、schemaLocation不是关键字,来自一个标准的名称空间

XML_第4张图片
XML中如何引入Schema约束


    
        
            
                
                    
                        
                            
                            
                            
                        
                    
                
            
        
    



    
        故事
        哈哈
        10块
    

你可能感兴趣的:(XML)