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. C++11类内static成员变量声明与定义

    众所周知,将一个类内的某个成员变量声明为static型,可以使得该类实例化得到的对象实现对象间数据共享. 在C++中,通常将一个类的声明写在头文件中,将这个类的具体定义(实现)写在cpp源文件中. 因 ...

  2. C++面试常见问题——04链表的逆序与合并

    链表的逆序与合并 链表的逆序 已知一个链表的头指针为head,将该链表逆序. #include<iostream> using namespace std; struct Node{ in ...

  3. ch8 固定宽度、流式、弹性布局

    假设浏览器窗口设置为1250px:wrapper的宽度为960px:content的宽度为920px:确保了wrapper居中时两边有20px的间距:  secondary的宽度为230px:  pr ...

  4. windows服务使用和控制启停

    https://www.cnblogs.com/mq0036/p/7875864.html

  5. 用Total Commander替换windos默认资源管理器的方法

    Total Commander(简称TC)是一个功能强大的资源管理器. TC本身没有自带的替换windows资源管理器的功能,就必须自己动手解决了. 第一步先Google一下看有没有答案.当时搜出了不 ...

  6. springMVC的执行请求过程

    springMVC的运行流程: 1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器 3.处理器映 ...

  7. 初始化加载和导航时脚本执行的函数(初始化脚本执行环境)page.evaluateOnNewDocument

    /** * Copyright 2017 Google Inc., PhantomJS Authors All rights reserved. * * Licensed under the Apac ...

  8. 白底黑字!Android浅色状态栏黑色字体模式(另)

    小彬什么都想做任重致远 关注 2016.06.30 10:16* 字数 489 阅读 3234评论 3喜欢 12 前言 由于该死不死的设计湿,设计了一套白色状态栏的UI.当然在iOS上可以实现自适应, ...

  9. axios设置请求头失效的问题

    前言:因为在使用vue-element-admin框架时遇到了设置请求头失效的问题,在后来发现是代理跨域问题,所以又简单理解了一下跨域. 出现的问题是我在axios拦截器上设置了请求头token,但是 ...

  10. MariaDB——日志文件

    数据库各类日志  查询日志:   记录每一条sql语句,建议不开启,因为如果访问量过大,会占用相当大的资源,影响数据库的性能.    vim /etc/my.cnf.d/server.cnf    g ...