用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

jun    -  云代码空间

—— 相信 ,梦

Xml 语法和定义

2014-08-04|2295阅||

摘要:xml 自定义标签 可扩展的标记性语言 xml 通用性在不同而定语言平台中都可以解析: php .net

Xml 语法和定义 

EXtensible Markup Language

1: 作用描述对象数据结构

2: 存储数据信息    

html 区别显示网页数据  标签预定义  

 xml  自定义标签 可扩展的标记性语言 

xml  通用性在不同而定语言平台中都可以解析: php   .net 

2: xml  语法 

文件.xml  文本开发 编码  头声明 注意的地方:编码 

<?xml version=1.0 encoding=utf-8?>

默认编码: encoding=iso-8859-1  不支持中文

3:xml 约束之DTD约束

3.1 DTD 约束:  内部约束  和  外部约束

3.1.1作用:  Xml 文档进行语法限定 定义xml 文档的编写

面向对象主要是 :xml 里面的 元素  属性  文本  做约束 

内部约束特点:xml 文件中进行如下代码::

3.1.2引入DTD约束<!DOCTYPE 根元素 [元素声明]>

<!DOCTYPE 根元素 [

 <! ELEMENT books (book+ * ? )>

]>

+  表示该元素出现的次数 1个 或者多个

*  表示该元素出现的次数 次 或者多次

?   表示 该元素出现的次数 0次或1

只含有文本节点的元素约束写法:

< !ELEMENT name (#PCDATA) >

  (#PCDATA) >  表示该元素里面只有文本节点

属性约束的写法

<!ATTLIST book cid CDATA #IMPLIED>

#REQUIRED

属性值是必需的

#IMPLIED

属性不是必需的

#FIXED value

属性值是固定的

属性出现的值主要有三种上述的必须出现 可或出现  固定值

属性类型2种必须掌握: CDATA  文本类型  ID  类型 唯一的不可重复的字符类型


3.1.1 DTD 约束之内部约束案例 

Xml   元素  属性  文本   

元素节点 复杂节点 可以含有元素节点 文本  层次关系 (,) 描述

<!ELEMENT 元素名 () > + * ?

当元素只含有文本节点

<!ELEMENT name (#PCDATA) >

属性约束  属于哪一个元素名称

<!ATTLIST 元素名 属性名 属性值类型(ID &CDATA) (约束 三个) >

如图所示:


3.1.2 DTD约束之外部约束

外部的约束 区别 .dtd 文件外部文件 对xml 进行约束 

DTD 文件主要做DTD语法的限定

XML 文件引入相关的DTD 

<!DOCTYPE 根元素名称 SYSTEM 文件位置 >

1: 编写一个DTD文件 扩展名.dtd


2: 在指定的XML 文件中引入 DTD文件即可


SYSTEM 后添加文件的位置注意路径问题  上述books.dtd表示当前路径下

实体  出现的原因:

 定义重复的数据  dtd 

Dtd文件中 <!ENTITY  实体名 实体值>

XML 文件引入:  &实体名;

CDATA区 

作用 处理代码片段 或者 特殊字符  

     <![CDATA[

          100<200

        ]]>


3.1 Schema 约束 

3.1.1 作用

1: 数据类型具体化定义  int  string  double date

2: 一个xml文件可以引入多个约束schema

3: schema  本身就是xml  定义schema 标签  根元素  schema

  通过名称空间引入 namespace

目的指定xml进行约束  编写:schema  引入预定义好的 w3c定义好了一套schema约束的标签  <element>  最终目的  自己的book.xml 进行约束

第一步:  引入官方的schema 使用官方的预定义好的一套标签

                

第二步 使用官方的标签 定义约束 book.xml 文档 编写schema 文档

        区分元素  复杂元素  和 简单元素 开始编写

       复杂元素:  含有 子元素 或者 属性  添加 complexType 标签

简单元素只含有文本  添加属性  type  double  int 

具体如下:    

第三步定义自定义的schema文档的名称空间:

        给指定的xml 进行引入约束

第四步book.xml 通过属性名获取指定的目标约束文件位置  

注意点

       1: schema 文档中的 值的选择 

         elementFormDefault="unqualified"  

        qualified: 根元素 和 子元素 保持名称空间一致的限定

        unqualified: 必须对目标的xml根元素进行添加名称空间别名操作 而子元素不需要添加

       2:  引入官方的固定的名称空间不可以更改 

       3:  引入指定的约束 通过schemaLocation 属性 需要引入官方的schema

          Xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance

 xsi:schemaLocation=名称空间 .xsd 文件的位置

今天 学习知识完成.

家庭作业 student.xml

 DTD  Schema  student.xml

复杂根元素students 3个学员

子元素 

student(: id(属性) name(元素)  age  classroom ) 

classroom (cid 属性 班级号roomname  roomtype

)  

元素 含有子元素和属性  

含有班级信息  含有roomname  roomtype

限定: id  cid  ID l类型 属性必须出现  

roomtype 限定字符不可超过4个字符

明天课程预习: xml 解析  JAXP  sun  JDK 

Java  for   xml  processing

Javax.xml.parser

DocumentBuilfer  解析核心类  api 获取对象

DocumentBuilderFactory  工厂类à获取解析器

按照树形结构  元素  属性 文本  Node 

 

顶 1踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: jun
    • 等级: 资深程序员
    • 积分: 1523
    • 代码: 94 个
    • 文章: 24 篇
    • 随想: 0 条
    • 访问: 7 次
    • 关注

    最新提问

      站长推荐