zoukankan      html  css  js  c++  java
  • XML

    XML技术
    与数据相关的技术,常用来存储数据和传输数据。
    优势:xml是第三方的数据格式与任何编程语言都是不具有相关性的,所以可以用于任何的编程语言
    类似HTML同样是标记文本语言,标签没有被预定义,由开发者随意书写,而HTML标签是预定义的,每个标签都有对应的意义。
    未来也许会出现某种字处理软件、电子表格程序以及数据库,它们可以使用纯文本格式读取彼此的数据,而不需要使用任何的转换程序。
    简化了数据的传输,解决了兼容性,简化了数据共享

    xml是数据树形结构,标记本身嵌套使用。节点的划分。
    类似HTML,各节点也具有属性。属性本身也可以看做一个节点,只不过不是用来连接上下级的节点。

    XML语法;
    1.文档声明
    2.元素
    3.属性
    4.注释
    5.CDATA块
    6.处理指令

    此处是简化之后的学习并不是XML的全部

    文档声明
    任何XML都必须具备文档声明,声明XML文档的类型
    声明格式<?version="1.0" encoding="ISO-8859-1"?>
    任何文档声明都必须具有version的声明,版本是可以随意的,但是一般用来记录数据更新的版本。
    如果没有指定编码集默认采用编辑器默认编码格式,但是浏览器默认是ISO-8859-1格式解析,这个格式是不支持中文的,所以如果编码集不一致会导致乱码
    文档是一种树形结构,必须要有根元素,钙元素是所有其他元素的父元素节点,所有元素都可以具有子元素。

    所有 XML 元素都须有关闭标签
    所有元素都必须彼此正确地嵌套:
    XML 标签对大小写敏感
    &lt; < 小于
    &gt; > 大于
    &amp; & 和号
    &apos; ' 单引号
    &quot; " 引号
    注释<!-- This is a comment -->
    XML 元素必须遵循以下命名规则:
    名称可以含字母、数字以及其他的字符
    名称不能以数字或者标点符号开始
    名称不能以字符 “xml”(或者 XML、Xml)开始
    名称不能包含空格
    可使用任何名称,没有保留的字词。
    名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。
    避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为你需要提取第一个单词。
    避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。
    避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。
    XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。
    非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。

    XML 的优势之一,就是可以经常在不中断应用程序的情况进行扩展。

    属性
    属性通常提供不属于数据组成部分的信息。在下面的例子中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:
    没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。我的经验是在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
    因使用属性而引起的一些问题:
    属性无法包含多重的值(元素可以)
    属性无法描述树结构(元素可以)
    属性不易扩展(为未来的变化)
    属性难以阅读和维护

    验证XML文档
    合法的 XML 文档是“形式良好”的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则
    <!DOCTYPE note SYSTEM "Note.dtd">
    DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:
    W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:

    XML显示
    XSLT 是首选的 XML 样式表语言。当然CSS也可以
    <?xml-stylesheet type="text/xsl" href="simple.xsl"?>

    XMLHttpRequest 对象用于在后台与服务器交换数据。
    在不重新加载页面的情况下更新网页
    在页面已加载后从服务器请求数据
    在页面已加载后从服务器接收数据
    在后台向服务器发送数据
    xmlhttp=new XMLHttpRequest();

    CDATA 区段中的文本会被解析器忽略。
    CDATA 部分中的所有内容都会被解析器忽略。通常用来存放一些特别的代码
    CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
    <script>
    <![CDATA[
    function matchwo(a,b)
    {
    if (a < b && a < 0) then
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }
    ]]>
    </script>
    CDATA与转义字符可以有相同的作用,但是优先使用CDATA,因为从解析的角度来看转义字符需要进行转义才可以看到最终效果,而CDATA则不需要转义

    处理指令
    简称PI,处理指令用来指挥解析引擎如何解析XML文档内容
    <?xml-stylesheet type="text/css" href="1.css"?>//通知XML解析引擎应用css文件显示xml文档内容
    处理指令必须以<? ?>开头结尾,文档声明语句就是最常见的指令处理语句

    xml技术应用
    1,传输和存储数据----程序员为了简化开发,不对xml使用约束技术
    不使用xml约束技术,xml格式不一定正确
    所有xml数据内容生成,解析过程都是通过程序来完成,而不是开发人员手动完成

    2,使用xml配置文件
    使用约束技术的保证xml元素的准确性

    使用了xml约束的文档,又称为文档验证
    元素内容更加规范
    约束技术有两种DTD和Schema


    DTD快速入门
    Document Type Definition
    语法<!ELEMENT 元素(子元素或者文本类型)>
    DTD与xml文档关联的三种方式
    1,内部DTD、
    <!DOCTYPE 根元素[
    // 此处写元素类型
    <!ElEMENT books(book)>
    <!ELEMENT book(name,price)>
    <!ELEMENT name(#PDATD)>
    ]>

    2,外部DTD
    语法<!DOCTYPE 根元素 SYSTEM “DTDURL”>

    3,公共DTD
    <!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD网络文件URL">

    DTD约束语法细节
    元素定义
    <!ELEMENT 元素名称(元素内容声明)>
    属性定义
    实体定义

    XML Schema
    是有一套预先定义的XML元素和属性,不同于普通的xml是没有预先定义的
    Schema本身也是一个XML文档但他的扩展名是.xsd
    一个Schema文档称之为模式文档,通过该规范写出来xml文档被称为实例文档
    该文档中必须有一个根节点Schema
    通常需要把这个文件中声明的元素绑定URI地址(又成为命名空间),用来表示元素来自哪一个schema文档

    一个普通的XML文档
    <?xml version="1.0"?>
    <note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note>

    一个DTD约束文档note.dtd
    <!ELEMENT note (to, from, heading, body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>

    一个xml Scheam约束文档note.xsd
    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3school.com.cn"
    xmlns="http://www.w3school.com.cn"
    elementFormDefault="qualified">

    <xs:element name="note">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="to" type="xs:string"/>
    <xs:element name="from" type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>

    </xs:schema>

    XML文档对DTD约束文档的引用
    <?xml version="1.0"?>
    <!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd">
    <note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note>

    XML文档对Schema文档的引用
    <?xml version="1.0"?>
    <note
    xmlns="http://www.w3school.com.cn"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3school.com.cn note.xsd">

    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note>

  • 相关阅读:
    【smarty项目源码】模拟smarty模版文件的解析过程
    Android SDK在线更新镜像服务器
    Emmet Documentation
    SublimeText3 生成html标签快捷键
    http://www.zhihu.com/question/24896283
    Sublime Text 3 常用插件以及安装方法(转)
    sublime text 2中Emmet8个常用的技巧 .
    MySQL主从同步添加至zabbix监控
    MySQL设置只读模式
    MySQL使用root用户授权出现错误ERROR 1045 (28000) at line 2: Access denied for user 'root'@'%' (using password: YES)解决办法
  • 原文地址:https://www.cnblogs.com/ss561/p/4611083.html
Copyright © 2011-2022 走看看