XML与DTD(够用)

 

1: 概述

1.1 什么是XML

1.2 三个重点

1.3规则

1.4 常用转义

2: Xml声明

XML 中,空格会被保留

XML LF 存储换行

3:Xml标签

4:Xml元素

5:XML 属性

6:验证XML

7:最佳命名习惯

8:XML进阶

 

 

1: 概述

1.1 什么是XML

   XML指可扩展标记语言。它是从标准通用标记语言派生的基于文本的标记语言(SGML).

1.2 三个重点

 XML是可扩展的XML允许你创建自己的自描述性的标签,或语言,适合您的应用程序.

 XML进行数据 : 不存在它:XML允许你无论存储将如何呈现这些数据.

 XML是一个公共标准 : XML是由一个组织开发的名为万维网联盟(W3C),并可以作为一个开放的标准.

 1.3规则

基本语法:

  1. xml文档的后缀名 .xml

  2. xml第一行必须定义为文档声明

  3. xml文档中有且仅有一个根标签

  4. 属性值必须使用引号(单双都可)引起来

  5. 标签必须正确关闭

  6. xml标签名称区分大小写 (标签 属性)

          7. xml只允许只有一个根(Root)标签

          8. xml标签的属性也是区分大小写的

      1.4 常用转义

 

     

2: Xml声明

  xml分为两个部分, xml声明 xml标签

 版本:

 编码

 是否依赖于信息从外部源,诸如外部的文档类型定义(DTD)的语法分析程序,其内容。默认值被设置为无。将其设置为yes告诉处理器有需要解析的文件没有外部声明

 yes no

xml注释:

XML 中,空格会被保留

Hello           Tove   ====>转换为 Hello Tove

XML 以 LF 存储换行

  Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。

  Unix Mac OSX 中,使用 LF 来存储新行。

3:Xml标签

完整闭合标签

这是正确的句法

空标签


#或者

4:Xml元素

    可以包含一个或者多个元素,这些元素允许两种不同的赋值方法

 Tove  Jani  Reminder  Don't forget me this weekend!

5:XML 属性

 属性必须加引号

或者这样也可以:

 多个属性

 尽量使用元素代替属性

 属性不能包含多个值(元素可以)

 属性不能包含树结构(元素可以)

 属性不容易扩展(为未来的变化)

 数据库中用于标识某个元组

 使用id表示某一组数据

     Tove      Jani      Reminder      Don't forget me this weekend!    

 

6:验证XML

DTD验证

 本地验证:

 网络验证:

// 指定验证的文件  Tove    Jani    Reminder    Don't forget me this weekend!

schema验证

XSD:描述

7:最佳命名习惯

 使名称具有描述性。使用下划线的名称也很不错:

 名称应简短和简单,比如:,而不是:

 避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为您想要从 first 里边减去 name

 避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。

 避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。

 显示XML

 使用CSS

 使用XLAT

 8:XML进阶

XML命名空间

 xmlns:f="http://www.w3cschool.cc/furniture"   f就是指定的命名空间

 Android中 布局标签就是使用的这种命名空间

CDATA数据

   对于某些数据需要直接按照文本形式处理的 @lt @gt 就不会处理

具体数据  ]]>

XML 数据岛

  XML 数据岛是嵌入到 HTML 页面中的 XML 数据。

 XML 数据岛只在 Internet Explorer 浏览器中有效。

 

 

1: 基本使用

2:声明元素

3 xml属性

4:xml实体

 

    定义:  文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

 

 PCDATA:

PCDATA 的意思是被解析的字符数据(parsed character data)。

可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。

PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。

 CDATA:

CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。

 XML外部 内部:

本地路径">

// 声明为公共的DTD文件

1: 基本使用

声明DTD开始部分

具体的元素 属性 实体--> ]>

 

2:声明元素

 空元素

# 实例

     多个元素

含有多个元素的元素,子元素必须连续声明

实例

    PCDATA元素(可以被解析为元素的)

# 实例

    带有任何内容的元素

# 实例

 声明只出现一次的元素

# 实例:

声明最少出现一次的元素 +

# 实例:

声明出现零次或多次的元素 *

# 实例:

声明出现零次或一次的元素 ?

# 实例:

声明 |可选内容

实例:

声明混合型的内容

实例:

3 xml属性

    格式

#          元素名  属性名   类型  属性值 # 实例 # 这个" " 可以不给 可以给限定值 #REQUIRED #FIXED #IMPLIED

    提供的类型

类型

描述

CDATA

值为字符数据 (character data)

(en1|en2|..)

此值是枚举列表中的一个值

ID

值为唯一的 id

IDREF

值为另外一个元素的 id

IDREFS

值为其他 id 的列表

NMTOKEN

值为合法的 XML 名称

NMTOKENS

值为合法的 XML 名称的列表

ENTITY

值是一个实体

ENTITIES

值是一个实体列表

NOTATION

此值是符号的名称

xml:

值是一个预定义的 XML

提供的属性

解释

属性的默认值

#REQUIRED

属性值是必需的

#IMPLIED

属性不是必需的

#FIXED value

属性值是固定的

   

    完整例子

# 应用

幸福大街" />

     强制要求值 可选 固定值

//street 这个属性必须给出 # 实例

必须给出固定的值"> // //可选

     列举属性值

DTD: # XML 例子:

    指定ID IDREF

// # // 引用别人的ID // 表示引用多个ID

4:xml实体

  定义

# 实例 # 应用 @name1;@name2

 5 一些题目

 XML与DTD(够用)_第1张图片

 

 

 根据上面的内容写出DTD约束文件

xml version='1.0' encoding='utf-8'?>
DOCTYPE Teams {
    >
    ELEMENT Team (#PCDATA)>
    ELEMENT Team (Teamname,Country,Member+)>
    ELEMENT Teamname (#PCDATA)>
    ELEMENT Country (#PCDATA)>
    ELEMENT Member (#PCDATA)>
    ATTLIST Member Name CDATA #REQUIRED>
    ATTLIST Member Age CDATA #REQUIRED >
    ATTLIST Member Sex CDATA (Female|Male) "Male">
]>
<Teams>
    <Team>
        <Teamname>RomaTeamname>
        <Country>ItalyCountry>
        <Member Name=”AAA ”Age="36" Sex="Male" />
        <Member Name=”BBB ”Age="26" Sex="Female" />
    Team>
Teams>

 

 XSD Schema  描述

 

xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/NewXMLSchema"
    xmlns:tns="http://www.example.org/NewXMLSchema"
    elementFormDefault="qualified">
    <xs:element name="Teams">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Team" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Teamname" type="xs:string">xs:element>
                        <xs:element name="Country" type="xs:string">xs:element>
                        <xs:element name="Member" maxOccurs="100">
                            <xs:complexType>
                                <xs:attribute name="Name" type="xs:string">xs:attribute>
                                <xs:attribute name="Age" type="xs:integer">xs:attribute>
                                <xs:attribute name="Sex" type="xs:string">xs:attribute>
                            xs:complexType>
                        xs:element>
                    xs:sequence>
                xs:complexType>
            xs:element>
        xs:sequence>
    xs:complexType>
    xs:element>
xs:schema>

 

XML文档

xml version="1.0" encoding="UTF-8"?>
<Teams xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="NewXMLSchema.xsd"
    >
        <Teamname>RomaTeamname>
        <Country>ItalyCountry>
        <Member Name="AAA" Age="34" Sex="Male"/>
        <Member Name="AAA" Age="34" Sex="Male"/>
    Team>
Teams>

 

 

你可能感兴趣的:(XML与DTD(够用))