blogjava's web log

blogjava's web log
...

xml笔记

 

  XML 笔记

标记语言种类:
  1.格式化标记  <b>加粗</b>,<i></i>
  2.结构化标记  <div></div>,<table></table>
  3.语义标记    <pre></pre> <strong></strong>

eXtensible Markup Language  XML标记
  可扩展标记语言,是自定义,自描述的
  XML是SGML的子集.

XML结构:
 XML声明-> <?xml version="1.0" encoding="UTF-8"?>
    ↓ ↓           ↓             ↓
  指定 目标        版本   编码

 文档类型定义-> <!DOCTYPE catalog SYSTEM "catalog.dtd">
        ↓   ↓
      根元素      导入文件

 注释 ->  <!-- catalog last updated 2000-11-01 -->

 根元素-> <book id="bk101">
  → <author>Abercrombie, Kim</author>
  | <title>XML Developer's Guide</title>
  |       <genre>Computer</genre>
 元素 -> | <price>44.95</price>
  |       <publish_date>2000-10-01</publish_date>
  |       <description>
  |  <![CDATA[An in-depth look at
  |     creating applications with XML, using <, >,
  |  ]]>
  |     and &amp;.
  → </description>
          </book>

 * O->N
 + 1->N
 ? O->1

XML的优越性:
  1.信息共享
  2.数据传递
  3.数据重用
  4.分离数据和显示
  5.文档包含语义
  6.可扩展性

元素内容类型:
  空元素(EMPTY) <image   source=“11.jpg”/>
  ANY 元素(内容类型可以是任意的,可以是子元素,注释,指令,一般是根元素)
  (#PCDATA)类型:内容类型只能是字符数据元素间的关系
   可以是一个父元素对应多个子元素或一个子元素等
   子元素的之间的关系可以是顺序关系,选择关系

自定义实体语法:
 <!DOCTYPE 根元素 [
 <!ENTITY 实体名 "实体内容">
 ]>
 <!DOCTYPE 班级 [  <!ENTITY  pic1    “001.jpg”   ]>
 实体 符号
 &lt; <
 &gt; >
 &amp; &
 &quot; "
 &apos; '

XML文本字符串:  <![CDATA[<<<,.?'">>>]]> 显示-> <<<,.?'">>>

语法规范
  - 必须有XML声明语句
  - <?xml version="1.0" encoding="gb2312"?>
  - 必须有且仅有一个根元素
  - 标记大小写敏感
  - 属性值用引号
  - 标记成对
  - 空标记关闭
  - 元素正确嵌套
元素语法
  - 名称中可以包含字母、数字或者其它字符
  - 名称不能以数字和"_"(下划线)开头
  - 不能以XML/xml/Xml/…开头
  - 名称中不能含空格
  - 名称中不能含冒号(注:冒号留给命名空间使用)

XML的应用范围:  系统配置 应用程序集 数据加载 Web服务 内容管理

文档类型定义 Document Type Definition --> DTD
 元素(ELEMENT)的定义规则
 属性(ATTLIST)的定义规则
 可使用的实体(ENTITY)或符号(NOTATION)规则

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

DTD文档的声明及引用
  内部DTD文档
  <!DOCTYPE 根元素  [定义内容]>
  外部DTD文档
  <!DOCTYPE 根元素  SYSTEM "DTD文件路径">
  内外部DTD文档结合
  <!DOCTYPE 根元素  SYSTEM "DTD文件路径" [
   定义内容
  ]>

元素定义
  语法:
 <!ELEMENT NAME CONTENT>
    ↓    ↓     ↓
 关键字 元素名称 元素类型

  元素类型:
 EMPTY --> 该元素不能包含子元素和文本,但可以有属性-(空元素)
 ANY --> 该元素可以包含任何在DTD中定义的元素内容
 #PCDATA --> 可以包含任何字符数据,但是不能在其中包含任何子元素
 纯元素类型 --> 只包含子元素,并且这些子元素外没有文本
 混合类型 --> 包含子元素和文本数据的混合体
  示例:
   EMPTY示例--空元素
 <家庭>
    <人 名字="皮诺曹" 性别="男" 年龄="6"/>
  </家庭>
   ANY示例
 <家庭>
   <人>皮诺曹</人>
   <人><大人>皮诺曹爸爸</大人></人>
 </家庭>
   #PCDATA示例
 <家庭>
   <人 性别="男" 年龄="6">皮诺曹</人>
 </家庭>
   组合类型示例
 <!ELEMENT 家庭 (人+, 家电*)>

属性的定义
  语法:
 <!ATTLIST 元素名称
     属性名称    类型    属性特点
     ...
 >
  类型:
 CDATA   任何字符串(文本)
 ID   唯一的
 IDREF   指向文档中其它地方声明的ID类型的值
 IDREFS    IDREFS同IDREF,可以具有由空格分开的多个引用
 NMTOKEN   属性的值必须对应一个在DTD文档内声明的实体.(如:图形)
 NMTOKENS  与ENITIY类似,可以包含多个由空格分开的实体.
 Enumerated  枚举类型

属性的特点
 - #REQUIRED    元素的所有实例都必须有该属性的值(必填)
 - #IMPLIED     元素的实例中可以忽略该属性(可填)
 - FIXED value  元素实例中该属性的值必须为指定的固定值(常量)
 - Default value 为属性提供一个默认的值
定义实体
 内部 - <!ENTITY 实体名 "实体值">
 外部 - <!ENTITY 实体名 SYSTEM "URI/URL">
实体类型:
 普通实体、外部实体、参数实体、外部参数实体.

  实体类型引用方式 %实体名 (相当于用户控件)
   <!ENTITY %地址 "街道,城市,国家" >
   <!ENTITY 联系 (人名,电话,%地址;)>

命名空间(Namespace)
  - 避免命名冲突
  - 代码清晰
  命名空间的语法定义:xmlns:[prefix]="URL"
  默认命名空间 xmlns=“URL”

posted on 2006-03-24 16:24 record java and net 阅读(362) 评论(0)  编辑  收藏 所属分类: xml and html


只有注册用户登录后才能发表评论。


网站导航:
 

导航

常用链接

留言簿(44)

新闻档案

2.动态语言

3.工具箱

9.文档教程

友情链接

搜索

最新评论