zhoudaqian

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

XML(eXtensible Markup Language )

可扩展标记语言  标记语言的语言

HTML与XML的比较

 

 

XML文档的基本结构

<?xml version="1.0" encoding="UTF-8"?>                                                  <!--XML声明-->

<?xml-stylesheet type="text/xsl" href="show_book.xsl"?>

<!DOCTYPE catalog SYSTEM "catalog.dtd">                                                  <!--文档类型定义-->

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

<catalog xmlns="http://www.example.com/catalog/">                            <!--catalog根元素, id属性-->

    <book id="bk101">

         <author>Abercrombie, Kim</author>                                           <!--author、title元素-->

          <title>XML Developer's Guide</title>

          <genre>Computer</genre>

           <price>44.95</price>

           <publish_date>2000-10-01</publish_date>                                 <!--<![CDATA[内容]]>-->

           <description><![CDATA[An in-depth look at creating applications with XML, using <, >, ]]> and &amp;.</description>

    </book>

    <book id="bk109">

           <author>Kress, Peter</author>

           <title>Paradox Lost</title>

           <genre>Science Fiction</genre>

           <price>6.95</price>

           <publish_date>2000-11-02</publish_date>

           <description></description>

</book>

</catalog>

 

 

DTD文档类型定义--Document Type Definition

 

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

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

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

 

 

元素的定义:<!ELEMENT NAME CONTENT>    (关键字  元素名称  元素类型)

元素类型:

ANY-该元素可以包含任何在DTD中定义的元素

EMPTY-该元素不能包含子元素和文本,但可以有属性-(空元素)

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

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

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

 

修饰符号:()        ,        |         *        +           ?

 

 

属性的定义:<!ATTLIST 元素名称

                      属性名称 类型 属性特点

                       …...

                    >

类型:CDATA  :属性值可以是任何字符(包括数字和中文)

          ID : 该属性的取值必须是唯一的。

           IDREF /  IDREFS :IDREF属性的值指向文档中其它地方声明的ID类型的值。 IDREFS同IDREF,但是可以具有由空格分开的多个引用。

            NMTOKEN/NMTOKENS   :NMTOKEN是CDATA 的一个子集,由标准的,允许用于命名的字符组成(首字母可以是数字)。

                                                  NMTOKENS与NMTOKEN类似,包含多个由空格分隔的字符。(不允许特殊字符,eg:,等)

           Enumerated : 

    枚举: 事先定义好一些值,属性的值必须在所列出的值的范围内。eg:<!ATTLIST persion 性别 (男|女) #REQUIRED>

特点:

#REQUIRED :元素的所有实例都必须有该属性的值(NOT NULL)

#IMPLIED :元素的实例中可以忽略该属性(NULL)。

#FIXED :元素实例中该属性的值必须为指定的固定值。eg:<!ATTLIST sender company CDATA #FIXED "Microsoft">

value Default value(默认值):<!ATTLIST payment type CDATA "check"> XML示例: <payment type="check" />

 

 实体:

作用:避免重复输入 -- (宏、常量)

XML中五个预定义实体:&gt;   &lt;   &amp;(&符号)   &nbop;(逗号)  &quot;(双引号)

自定义实体语法: <!DOCTYPE 根元素 [ <!ENTITY 实体名 "实体内容"> ]>

引用已定义的实体: &实体名;

 

内部实体:

语法: <!ENTITY 实体名 "实体值">

DTD 示例: <!ENTITY writer "Donald Duck.">

     <!ENTITY copyright "Copyright W3Schools.">

XML 示例: <author>&writer;&copyright;</author>

 

外部实体:

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

DTD 示例: <!ENTITY writer SYSTEM "http://www.w3schools.com/entities/entities.xml">

     <!ENTITY copyright SYSTEM "http://www.w3schools.com/entities/entities.dtd">

XML 示例: <author>&writer;&copyright;</author>

 

(在PPT中具体查看实体的用法)

posted on 2017-04-18 14:42  zhoudaqian  阅读(147)  评论(0)    收藏  举报