zoukankan      html  css  js  c++  java
  • 韩顺平 JavaEE全套 第06部分 Xml视频教程 | XML文件书写和解析 | XML技术

    一.XML的历史介绍

    1969:gml(general),为了计算机网络上交换数据

    1985:sgml(standard),标准化

    1993:html,www万维网使用

    1998:xml(extensiable),为了弥补html缺陷推出

    html缺陷:

    1.标记不能自定义

    2.标记没有含义

    3.没有真正的国际化

    二.XML使用场景

    1.程序通讯

    2.配置文件

    3.小型数据库 

    4.表达能力(关系复杂)、扩展能力强的场景

    三.XML快速入门与语法详解

    XML语法分六部分

    • 文档声明
    • 元素
    • 属性
    • 注释
    • CDATA区,特殊字符
    • 处理指令

    文档声明:开头要<?xml version="1.0"  encoding="utf-8" standalone="yes"?> , 这个头部不可少,表明身份,文件编码,是否可以独立使用

    文件保存格式要和encodig声明的一致

     1.文档声明

    <?xml version="1.0"  encoding="编码格式" standalone="yes|no(默认no)"?> 

     2.元素

    只能有一个根元素

    元素也叫标签、节点,标签夹着标签体,没有标签体可以自闭和。标签可以嵌套,不能交叉嵌套。标签体里的空格换行都是被解析到的,不会忽略。

    标签区分大小写,不能以数字或者_开头,不能包含冒号,不能包含空格

     3.属性

    属性值用单引号、双引号包住。值中真正的单引号双引号用转义字符(实体),比如&quot;

    属性值不能包含< & >这三个字符;可以有中文

    属性名不能重复

    属性键值对之间用空格分格

     4.注释

    <!--和-->表明注释

    不能放在标记里

    不能嵌套

    注释内容不能有--

    5.CDATA节

    原始数据,不需要被解析的数据,比如图片

    用<![CDATA[和]]>包起来

    不能嵌套

    不能包含]]>

    6.指令

    指挥解析引擎如何解析xml文档内容

    用<?开头,?>结尾

    指令有xml-stylesheet,

    四.xml文件约束——dtd

    dtd缩写是document type definition,文档类型定义元文件

    主要用处是约束xml文件。dtd文件里定义规范,是个标准规范

    另一种约束技术是Schema

    xml引入dtd

    <!DOCTYPE 根元素名称 dtd文件类型(PUBLIC代表网络,SYSTEM代表本地)“public时dtd名称”  "dtd文件路径" >,路径可以是网络也可以是本地的

     dtd文件定义

    <!ELEMENT 父元素 (子元素+) (类型)>,+表示至少出现一次;有多个子元素,子元素可以用逗号分割;子元素和类型要用小括号包起来

    类型里的#PCDATA代表任何文本

    验证dtd工具

    xmlspy

    编程自行验证(ie用Microsoft.XMLDOM)

    浏览器不会自动验证dtd对xml约束

    dtd细节

    DTD文档声明及引用

    内部DTD,自定义内容在[]里

    外部DTD,使用路径引用

    内外部DTD,前二者结合

    DTD引入

    本地DTD

    外部DTD

    DTD元素

    <! ELEMENT 自定义名称 内容类型>

    类型可以有三种

    EMPTY:空元素,可以有属性

    ANY:放的标签要是在dtd里定义过的

    #PCDATA:任意字符内容,不能有子标签嵌套

    DTD无法约束具体类型(整数,字符等),Schema可以

    DTD组合类型

    +:至少有一个

    *:0到多个

    ():分组

    ?:最多一次

    ,:出现顺序要一致

    |:选择一个

    引入了DTD,任何属性都要有定义,否则使用即为未定义

    属性定义

    <!ATTList 元素名称

    属性名称 类型 属性特点

    >

    类型取值:

    CDATA,任意字符

    ID,不能重复,必须是合格的XML名字,不能以数字、下划线开头

    IDREF/IDREFS,已经定义过的ID,加S代表多个ID(用空格分隔)

    Emumerated,(value1|value2 |value3)

    ENTITY/ENTITIES:为一段内容创建别名

    实体(EnTITY)定义:

    <!ENTITY>

    引用实体:

    xml里引用dtd里定义的

    <!ENTITY 名称 "内容">

    &名称;  ,要这么引用,类似特殊字符

    参数实体:

    dtd里定义,dtd里使用

    <!ENTITY % 名称 "内容">

    引用方式: %名称;

    属性特点取值:

    #REAUIRED,必须有

    #IMPLIED,可有可无

    #FIXED value,如果有,必须是固定值

    value,默认值

    DTD现在基本已被XSD文档取代,但是,仍有个别在使用 比如 Mybatis mapper xml文件

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

    上面用的是公共DTD,DTD名称格式为"注册//组织//类型 标签//语言"
    "注册" 指示组织是否由国际标准化组织(ISO)注册,+表示是,-表示不是;
    "组织" 即组织名称,如:mybatis.org;
    "类型" 一般是DTD;
    "标签" 是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号,如Mapper 3.0。
    "语言" EN指英语;
    http://mybatis.org/dtd/mybatis-3-mapper.dtd 表示外部DTD文件URI,可以在此处下载,不过,Mybatis加载xml文件之前会在本地加载DTD代替从线上获取。

    内部DTD 是使用<!DOCTYPE rootElement [xxx]> 来定义的,当然内部DTD也可以使用DTD文件,如<!DOCTYPE rootElement SYSTEM "URI">

    <?xml version="1.0"?>
    <!DOCTYPE note [
      <!ELEMENT note (to,from,heading,body)>
      <!ELEMENT to      (#PCDATA)>
      <!ELEMENT from    (#PCDATA)>
      <!ELEMENT heading (#PCDATA)>
      <!ELEMENT body    (#PCDATA)>
    ]>
    <note>
      <to>George</to>
      <from>John</from>
      <heading>Reminder</heading>
      <body>Don't forget the meeting!</body>
    </note>

    xml编程部分

    五.XML解析技术概览

    XML文件书写和解析 

     一.xml工具安装以及使用详解

    XML Spy

    二.

    三.xml的Schema约束

    Schema约束使用xsd文件存储

    也叫作模式

    XSD:XML Schema Definition

    xml文件,定义新xml的文档结构

    一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。

    网上有生成xml schema的工具,输入xml信息就会生成xmlschema

    引入Schema

    使用别名xsi(XML Schema Instance)做引入的规范约束

    xmlns:xsi,http://www.w3.org/2001/XMLSchema-instance

    xsi:noNamepaceSchemaLocation,外部文件路径。可以用url编码

     定义Schema,引入schema定义的文件,指定标签和属性的限定

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

    </xs:schema>

     xs下定义标签描述,每个定义标签可以带属性,见xml spy提示

    element:对应标签。name:标签名,type:标签类型

    complexType:自定义类型

     sequence:complexType标签下的顺序标签

    Schema数据类型

    简单类型:

    内置的

    simpleType定义的

    复杂类型:

    complexType定义的

    定义了以下标签

    schema

    element

    attribute

    group

    attributeGroup

    simpleType

    simpleContent

    complexType

    choice

    list

    union

    unique

    sequence

    restriction

    schema:包含已经定义的schema

    element:定义元素标签节点。属性有name,type,ref,minOccurs,maxOccurs,fixed,default,substitutionGroup

    group:聚合一组element,所有element要一起出现。属性有name,ref

    attribute:声明属性。属性有name,type,ref,use。attribute要放在复合类型里;被引用,通过ref为name指定

    attributeGroup:聚合attribute,一组属性要同时出现。属性有name和ref

    simpleType:简单类型,定义了约束,即可以有什么值。属性是name。

      定制约束有三个标签

      restriction:在某个范围。属性有base,下面的子标签可以有emunation,minExclusive,maxInclusive,minInclusive等等

      union:从一个类型的集合中选一个,即限定类型,这几个类型混在一起同时限定。属性有memberTypes

    l  ist:从一个值型的集合中选一个,即限定类型,只能选一种类型。属性有itemType

    complexType:当要定义子元素和属性时,用复合类型。属性值有name

    simpleContent:对complexType做限制和拓展。子元素extension用来拓展。simpleContent定义的元素不能有子元素,只能有属性设置

    choice:允许唯一的元素从一个组中被选择。属性有minOccurs和maxOccurs

    sequence:一组元素按顺序出现

    XML技术

    19.命名空间

    命名空间修饰限定元素。

    xmlns:别名='uri',指定命名空间

    使用:

    别名:

    通过xmlns属性引入命名空间

    二十一.

  • 相关阅读:
    bootstrap 按钮 文本 浮动 隐藏
    bootstrap 表单控件 控件状态 控件大小 help-block
    wps 操作
    SSH中的免password登录
    Qt音乐播放器制作(二)Easy Player
    云计算资源分享与下载
    uva11059(最大乘积)
    两小时搞定C#版超级战舰游戏
    数据库中的參照完整性(Foreign Key)
    动手解决困扰自己的事情——记屏蔽网页广告
  • 原文地址:https://www.cnblogs.com/cascle/p/12155057.html
Copyright © 2011-2022 走看看