zoukankan      html  css  js  c++  java
  • JavaWeb基础: XML基础知识

    简介

    XML:可扩展标记语言,W3C指定的用于描述结构化数据的语言,XML在实际开发中,经常用作软件的配置文件,以描述程序模块之间的依赖和组合关系。

    XML约束:XML常常用于软件配置管理,对于软件框架需要约定配置文件的格式才能保证软件正常启动,因此需要XML约束技术,XML约束技术有两种:DTD和Schema。

    XML语法

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

    XML文档申明

    文档申明是XML必须的元素, 通常在XML文件第一行就需要写文档申明。缺乏文档申明的XML,就是一个格式不良好的文件。实际操作中,常常用IE做XML校验,如果IE无法打开XML文件,就说明XML文件格式有错误。

    <?xml version="1.0"?>

    文档申明可以用encoding说明字符编码,如果有中文内容,需要加入encoding属性,不然IE打开容易报“有无法识别内容“的错误。这里编码必须考虑本地操作系统的编码类型,在创建XML文件时,记事本或者是其它编辑软件会把内容保存为操作系统默认的编码类型(中文操作系统的默认编码是GB2312),程序在解析的时候需要和保存的编码保持一致才不会造成内容无法识别。因此对于中文系统上创建的文件,XML要能够被正确打开和解析,编码方式必须写为GB2312。另外一种保持编码格式一致的方式就是:保存时就制定保存格式为UTF-8, encoding 也指定为UTF-8(实际中为了通用性,通常采用UTF-8的方式).eclipse 会自动根据encoding编码转换,采用eclipse开发xml可以避免此问题;用技术本/Notepad++就需要考虑编码问题。

    <?xml version="1.0" encoding="GB2312"?>

    文档申明使用standalone标记来说明文档是否独立,如果是no的话,说明此文档依赖于其它文档

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

    XML元素和属性

    XML元素指XML中的标签,有如下规范:

    • XML文档中出现的标签,标签必须有开始和结束。
    • XML标签可以嵌套子标签,但是不能交叉嵌套。
    • XML文档有且仅有一个根标签,其它的标签都是根标签的子标签。
    • 空格和换行都会被当作XML的内容解析,在编写XML解析时必须考虑空格和换行
    • 标签名区分大小写,可包含数字和字母,必须以数字开头。

    XML属性指的是标签中的属性,有如下规范:

    一个标签可以有多个属性,属性的命名和标签命名规范相同,属性可以被改造为子标签(子元素)。

    XML注释 & CDATA区 & 处理指令

    xml 注释语法: <!-- -->

    CDATA:解析引擎不解析的内容,被CDATA包围起来的内容XML引擎不会去解析。

    处理指令:指挥解析引擎如何解析XML,常用于CSS控制XML显示的场合, 用于排版,设计这个功能的初衷是用XML代替HTML,因此有格式排版。

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/css" href="sample.css"?>
    <rootElement>
     <element1 attribute="value">
     </element1>
    </rootElement>

    XML 约束(DTD)

    DTD:Document Type Definition,

    <?xml version="1.0"?>
    <!ELEMENT bookstore (book+)>
    <!ElEMENT book(bookname,bookauthor,price)>
    <!ElEMENT bookname(#PDATA)>
    <!ElEMENT bookauthor(#PDATA)>
    <!ElEMENT price(#PDATA)>

    在XML中使用DTD

    <?xml version="1.0"?>
    <!DOCTYPE rootElemetXXX SYSTEM XXX.dtd>

    XML约束(Schema)

  • 相关阅读:
    【转】系统缓存全解析二:动态缓存(4)-第三方分布式缓存解决方案 Velocity
    DevExpress.XtraTreeList.TreeList 的一些解决办法
    【转】系统缓存全解析二:动态缓存(4)-Discuz!NT中集成Memcached分布式缓存
    c#遍历Dictionary
    【转】memcached 命令概述
    WSAWaitforMultEvent使用
    创建线程是否调用CloseHandle
    小序
    select模式学习(二)之:客户端
    CoInitlize使用
  • 原文地址:https://www.cnblogs.com/vivian-test/p/5931272.html
Copyright © 2011-2022 走看看