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>

  • 相关阅读:
    FJNU 1151 Fat Brother And Geometry(胖哥与几何)
    FJNU 1157 Fat Brother’s ruozhi magic(胖哥的弱智术)
    FJNU 1159 Fat Brother’s new way(胖哥的新姿势)
    HDU 3549 Flow Problem(最大流)
    HDU 1005 Number Sequence(数列)
    Tickets(基础DP)
    免费馅饼(基础DP)
    Super Jumping! Jumping! Jumping!(基础DP)
    Ignatius and the Princess IV(基础DP)
    Keywords Search(AC自动机)
  • 原文地址:https://www.cnblogs.com/ss561/p/4611083.html
Copyright © 2011-2022 走看看