Q: 什么是XML,为什么学习XML?
A:XML为可扩展标记语言。
标签由开发者自己制定的(要按照一定的语法定义)
描述带关系的数据(作为软件的配置文件): 包含与被包含的关系
  properties文件: key-value
    name=123123
    password=97897684
  <user>
    <name>123123</name>
    <password>97897684</password>
  </user>
场景:
  tomcat
  struts Hibernate spring (三大框架)
作为数据的载体(存储数据,小型的“数据库”)
 
     用来处理如下图关系的数据的:
 

Q:这样的数据如何交给计算机处理呢?

A:XML语言出现的根本目标在于描述上图那种,在现实生活中经常出现的有关系的数据。

XML语言中,它允许用户自定义标签。一个标签用于描述一段数据;一个标签可分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其它标签描述其它数据,此来实现数据关系的描述。

Tip:XML常见应用
XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。
在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定
例如一个软件在启动时,它需要启动A、B两个模块,而A、B这两个模块在启动时,又分别需要A1、A2和B1、B2模块的支持,为了准确描述这种关系,此时使用XML文件最为合适不过。

XML作用

描述带关系的数据(软件的配置文件)

XML语法
   XML文件后缀要以xml结尾
   XML文件要xml解析器解析
 
元素 
  对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。例如:下面两段内容的意义是不一样的。
  第一段:
    <网址>www.itcast.cn</网址>
  第二段:
    <网址>
       www.itcast.cn
    </网址>
  由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的“良好”书写习惯可能要被迫改变。
 
标签
   <aaa>aaaa</aaa>开始标签   标签体内容   结束标签
   <aaa/>或者<aaa></aaa> 空标签   无标签体内容
   标签严格区分大小写
   标签名要符合标识符规则(不能以数字开头,只有字母数字下划线)
  <Students>
   <!-- xml's comment  -->
   <_Student name="eric" id="001">student</_Student>
   <_Student name="jacky" id="002">student</_Student>
  </_Students>
  一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许交叉嵌套 
      <a>welcome to <b>www.it315.org</a></b>
  格式良好的XML文档必须有且仅有一个根标签,其它标签都是这个根元素的子孙标签。
 
属性
  <_Student name="eric" id="001">student</_Student>
  一个标签可以有多个属性,每个属性都有它自己的名称和取值,例如:
    <input name=“text”>
  属性值一定要用双引号(")或单引号(')引起来
  定义属性必须遵循与标签相同的命名规范
  多学一招:在XML技术中,标签属性所代表的信息,也可以被改成用子元素的形式来描述,例如:
    <input>
        <name>text</name>
    </input>
注释
   Xml文件中的注释采用:“<!--注释-->” 格式。
  注意:
    XML声明之前不能有注释
    注释不能嵌套,例如:
       <!--大段注释
       ……
        <!--局部注释-->
       ……
       --> 
文档申明
  在编写XML文档时,需要先使用文档声明,声明XML文档的类型。
  最简单的声明语法:
   <?xml version="1.0" ?>
  用encoding属性说明文档的字符编码:
   <?xml version="1.0" encoding="GB2312" ?> 
  用standalone属性说明文档是否独立:
   <?xml version="1.0" encoding="GB2312"  standalone="yes" ?>
转义字符
   对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。
<?xml version="1.0" encoding="utf-8"?>
<codes>
<code>&lt;p&gt;段落&lt;/p&gt;</code>
<code>
<![CDATA[ <html><head>head</head><body>body</body></html>
]]>
</code>
</codes>

CDATA块
   在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理。
  遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直接原封不动的输出。
  语法:<![CDATA[ 内容 ]]>
     <![CDATA[
        <itcast>
           <br/>
        </itcast>
      ]]>
 
处理指令

  处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
  例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。 <?xml-stylesheet type="text/css" href="1.css"?>
  处理指令必须以“<?”作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。
 

Day 24:XML基础的更多相关文章

  1. 第一篇 -- XML基础

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

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

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

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

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

  4. XML基础概念

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

  5. xml基础小结

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

  6. XML基础<第一篇>

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

  7. JavaEE XML 基础知识

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

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

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

  9. pom.xml基础配置

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

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

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

随机推荐

  1. LeetCode 24. Swap Nodes in Pairs(交换链表中每两个相邻节点)

    题意:交换链表中每两个相邻节点,不能修改节点的val值. 分析:递归.如果以第三个结点为头结点的链表已经两两交换完毕(这一步递归实现---swapPairs(head -> next -> ...

  2. TouchGFX

    TouchGFX让用户界面代码只占用10KB的 SRAM空间和20KB的闪存空间的C ++软件框架.有无操作系统均可

  3. springmvc 请求出现400错误(当传入的参数类型是Date时加上下面代码试试)

    @InitBinder protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) t ...

  4. [mjpeg @ ...] unable to decode APP fields: Invalid data found when processing input

    通过FFmpeg打开自己笔记本摄像头(HP Wide Vision HD Camera)操作时遇到如下错误: [mjpeg @ 0000029be7cbd000] unable to decode A ...

  5. JS中字符串的编码 解码

    DEPTNAME 是一个字符串 编码: DEPTNAME = encodeURI(encodeURI(DEPTNAME)); 解码: DEPTNAME = decodeURI(DEPTNAME,&qu ...

  6. red hat 7、centos7的root密码破译

    一.在开机画面时按"E". 二.找到linux16开头的这段,在段尾添加空格"rd.break"然后按Ctrl+x进入系统紧急救援模式. 三.新的界面出现命令行 ...

  7. [python]ubuntu下的python2和python3

    在终端分别输入python,python2,python3python和python2默认都是python2python3才是python3 Ubuntu下是默认没有pip的,需要自己手动安装 sud ...

  8. python 通过UDP传输文件

    使用一个简单的python脚本将一个本地文件以码流的形式,通过UDP协议发送到对端: import socket import os import stat import struct   MAX_P ...

  9. windows下安装redis并部署服务

    下载地址: windows版本: https://github.com/MSOpenTech/redis/releases Linux版本: 官网下载: http://www.redis.cn/ gi ...

  10. C 随机数产生

    // ConsoleApplication5.cpp : Defines the entry point for the console application. // #include " ...