一、XML是什么?作用是什么?
1、XML是指可扩展标记语言(eXtensible Markup Language),用户自定义的标签.相对于HTML来讲的。
2、XML被设计的宗旨是表示数据。HTML是用来显示数据的。目前经常使用的XML版本是1.0
3、XML除了表示数据外。在实际的企业开发中,主要用XML作为程序的配置文件。

二、XML的基本语法
1、文档声明:
作用:用于标识该文档是一个XML文档。
注意事项:声明必须出现在文档的第一行(之前连空行都不能有,也不能有任何的注释)

最简单的XML声明:<?xml version="1.0"?>
声明中的encoding属性:说明解析当前XML文档时所使用的编码。默认是UTF-8
声明中的standalone属性:说明XML文档是否是独立的。(了解)

2、元素
结束标签不能省略
一个XML文档必须且只能有一个根标签
XML文档中不会忽略回车和换行及空格
标签的命名规范:元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点。严格区分大小写。

3、元素的属性
元素的属性取值一定要用引号引起来(单引号或双引号)

4、注释
与HTML中的注释完全一致:<!--这是注释-->
注释不能嵌套

5、CDATA区
CDATA是Character Data的缩写。
作用:CDATA区中的东东都是文本。
语法:
    <![CDATA[
    
            文本内容
            
            ]]>
6、特殊字符
&        &amp;
<        &lt;   (less than)
>        &gt:    (great than)
"        &quot;
'        &apos;

7、处理指令(PI:Processing Instruction)
处理指令,简称PI(Processing Instruction)。
作用:用来指挥软件如何解析XML文档。
语法:必须以“<?”作为开头,以“?>”作为结尾。

三、XML的约束
1、格式良好的XML文档:符合XML语法的。
2、有效的XML文档:遵循约束规范的。
格式良好的不一定是有效的,但有效的必定格式良好。

四、DTD的基本语法(看懂即可)
1、DTD:Document Type Definition
2、作用:约束XML的书写规范。
3、DTD文件保存到磁盘时,必须使用UTF-8编码

4、如何引入外部的DTD文档来约束当前的XML文档
DTD文件在本地:<!DOCTYPE 根元素名称 SYSTEM "DTD文件的路径">
DTD文件在网络上:<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD的路径URL">

5、DTD的语法细节
    5.1定义元素
        语法:<!ELEMENT 元素名称 使用规则>
        使用规则:
            (#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data)
            EMPTY:指示元素的不能有主体内容。
            ANY:用于指示元素的主体内容为任意类型
            (子元素):指示元素中包含的子元素
                    如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档
                    如果子元素用“|”分开,说明任选其一。
                    用+、*、?来表示元素出现的次数
    5.2定义元素的属性(attribute)
        语法:<!ATTLIST 哪个元素的属性
                        属性名1 属性值类型 设置说明
                        属性名2 属性值类型 设置说明>
            属性值类型:
                CDATA:说明该属性的取值为一个普通文本
                ENUMERATED (DTD没有此关键字):
                    语法:<!ATTLIST 元素名称 (值1|值2) "值1">
                ID:属性的取值不能重复
            设置说明:
                #REQUIRED:表示该属性必须出现
                #IMPLIED:属性可有可无
                #FIXED:表示属性的取值为一个固定值 语法:#FIXED "固定值"
                直接值:表示属性的取值为该默认值
    5.2定义实体
        关键字ENTITY
        实体的定义分为引用实体和参数实体
        引用实体:
            作用:在DTD中定义,在XML中使用
            语法:<!ENTITY 实体名称 "实体内容">
            在XML中使用:&实体名称;
        参数实体:
            作用:在DTD中定义,在DTD中使用
            语法:<!ENTITY % 实体名称 "实体内容">
            在DTD中使用:%实体名称;
    
                    
五、XML解析方式概述
1、常用XML的解析方式:DOM和SAX
DOM:Document Object Model是W3C推荐使用的解析方式
SAX:Simple API for XML。非官方标准。
2、常用解析开发包:
JAXP:SUN推出的实现,能进行DOM和SAX方式解析
Dom4J
JDom等

六、JAXP进行DOM解析
JAXP的API都在JavaSE中。
org.w3c.dom:提供DOM方式解析XML的标准接口
org.xml.sax:提供SAX方式解析XML的标准接口
javax.xml:提供了解析XML文档的类

七、Schema约束(看懂即可)
1、Schema约束文档本身就是一个XML文档,扩展名为xsd
2、重点:根据Schema写出XML文档
难点:XML文档的根元素怎么写?

a、首先看Schema文档,找到根元素
<?xml version="1.0" encoding="UTF-8"?>
<书架></书架>
b、思考:书架来自于哪个名称空间?看Schema文档,targetNamespace就是名称空间。
用xmlns关键字(xmlns名称空间声明)来声明我的元素来自哪个名称空间(xmlns:xml namespace)

<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"></itcast:书架>

c、思考:名称空间与哪个xsd文件对应呢?使用schemaLocation关键字来关联名称空间和xsd的对应关系

<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
            schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>

d、schemaLocation来自哪里?来自一个标准的名称空间(http://www.w3.org/2001/XMLSchema-instance)
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>

XML基础(转)的更多相关文章

  1. .net学习笔记---xml基础知识

    一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...

  2. XML 参考:XML基础 XML 简介

    XML 参考:XML基础 -- XML简介和用途 转:http://www.cnblogs.com/Dlonghow/archive/2009/01/22/1379799.html XML 参考:XM ...

  3. XML基础概念

    XML基础概念 一.什么是XML. 可扩展标记语言(EXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 二.XML特点 1 ...

  4. xml基础小结

    XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的“数据库” 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大小写.有且仅有一个根标签 ...

  5. XML基础<第一篇>

    一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...

  6. JavaEE XML 基础知识

    JavaEE XML 基础知识 @author ixenos 1.    XML开头都需要一个声明 <?和?>表明这是一个处理指令 <?xml version=”1.0” encod ...

  7. JavaWeb学习日记----XML基础

    1.XML基础: XML全称为eXtensible Markup Language;即可扩展标记型语言,同HTML一样使用标签来操作.它的可扩展性体现在标签可以由自己定义,可以是中文标签. XML用途 ...

  8. pom.xml基础配置

    pom.xml基础配置: maven中,最让我迷惑的还是那一堆配置! 就拿这个属性配置来说: 我需要让整个项目统一字符集编码,就需要设定 <project.build.sourceEncodin ...

  9. XML基础+Java解析XML +几种解析方式的性能比较

    XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...

  10. 第一篇 -- XML基础

    一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...

随机推荐

  1. Winform GDI+绘图二:绘制旋转太极图

    大家好,今天有时间给大家带来Winform自绘控件的第二部分,也是比较有意思的一个控件:旋转太极图. 大家可以停下思考一下,如果让你来绘制旋转的太极图,大家有什么样的思路呢?我今天跟大家展示一下,我平 ...

  2. 数据分析之Numpy、Matplotlib库

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 菜鸟教程:https://www.run ...

  3. flask之response

    import os from flask import Flask,render_template,redirect,jsonify,send_file app=Flask(__name__) #开发 ...

  4. 愉快地使用Open Live Writer写博客

    想要坚持写博客的习惯,却又无法忍受网页编辑器的各种不方便?open live writer是一个不错的选择.对我来说最有诱惑的就是能够快速的黏贴图片.代码.使用过程遇到不少坑,最坑的就是不能使用163 ...

  5. 论文阅读:Reducing Transformer Depth On Demand With Structured Dropout

    Introduction 这篇paper是做Transformer压缩的,但其实bert的核心也就是transformer,这篇paper的实验里也做了bert的压缩.作者的主要工作是提出了Layer ...

  6. CF834D

    题目链接:http://codeforces.com/contest/834/problem/D 题目大意:将一个有n个数的数列分成k段,每段的价值为该段中不同数字的个数,求k段的最大总价值. 解题思 ...

  7. Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(三)

    在前面两篇文章中,我介绍了基于IdentityServer4的一个Identity Service的实现,并且实现了一个Weather API和基于Ocelot的API网关,然后实现了通过Ocelot ...

  8. (一) Vue在创建的时候 入口文件 及相关的路由配置(及子路由配置)

    1. 首先明确一点  在书写之前尽量保持相关的文件知道含义 比如 components 啥的 知道是要放什么东西 在这里介绍一下   由于 vue 不是系统学习 所以很多的创建方式可能不一样  就是有 ...

  9. Python-pygame案例AI贪吃蛇

    # coding: utf-8 import pygame,sys,time,random from pygame.locals import * # 定义颜色变量 redColour = pygam ...

  10. 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群 部署 dashboard 2.x

    1. 部署dashboard 2.x版本 Dashboard 分为 1.x版本 和 2.x版本, k8s 使用的是1.18.2 故部署2.x版本的 # dashboard 2.x版本的部署 # 上传d ...