• xml学习笔记


    1.xml介绍

      xml是指可扩展标记语言,是被设计用来结构化、存储以及传输信息,是独立于软件和硬件的信息传输工具。

    2.基本语法

     1.文档声明

        在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行

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

         意思是这是一个xml文件,写入内存的时候的编码为UTF-8

      2.标签

       xml必须包含有根元素,该元素是所有其他元素的父元素类似(html)。

        <beans>

          <bean>

          </bean>

        </beans>

        xml中所有元素都必须有关闭标签:

          非法标签:

            <p>name

            <p>age

          合法标签:

            <p>name</p>

        标签名必须为字母或者下划线开头: a,_a;

        避免使用 "-" , "." , ":"来命名标签名 

        不能以xml作为标签;

        不能有空格:ab;

        字符之间不能使用分号;

        大小写敏感(title和Title不是同一个标签);

        标签属性值必须加上分号:

        <title name=""></title>

        一些字符具有特殊意义

        <title>10 < 100 </title>要写成<title>10  &lt; 100<title>

        

        元素中的空格会被保留;

        注释格式:

        <!-- 这是一个注释 -->

        在XML 中,应该尽量避免使用属性。如果信息感觉起来很像数据,使用第一种格式。

        第一种格式:

          <user>

            <name>tom</name>

          </user>

        第二种格式:

          <user name="tom">

          </user>

        有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 ID 属性是一样的。仅起到标识作用,并不是标签数据的组成部分。

          <user id="10001"></user>

    3.XML约束

      1.DTD约束

          DTD 的作用是定义XML文档的结构。它使用一系列合法的元素来定义文档结构:

        dtd可以写在单独的文件中,扩展名是dtd,且必须使用UTF-8编码进行保存。

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

        <!DOCTYPE 根元素 SYSTEM "文件名">

         详细地址http://www.w3school.com.cn/dtd/dtd_intro.asp

      2.schema约束

        XML Schema 的作用是定义XML文档的合法构建模块,类似 DTD。

         作用:

            1)可以定义可出现在文档中的元素
              2)可以定义可出现在文档中的属性
              3)可以定义哪个元素是子元素
              4)可以定义子元素的次序
              5)可以定义子元素的数目
              6)可以定义元素是否为空,或者是否可包含文本
              7)可以定义元素和属性的数据类型
              8)可以定义元素和属性的默认值以及固定值 
     
        XML Schema 最重要的能力之一就是对数据类型的支持。

        XML Schema 文件自身就是一个XML文件,但它的扩展名通常为.xsd。支持名称空间。一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为schema。编写了一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,在XML Schema技术中有一个专业术语来描述这个过程,即把XML Schema文档声明的元素绑定到一个名称空间上,以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束。

      约束文档:

        模式文档(约束文档):

    <?xml version="1.0"?>
    <!-- xml:xs 显示schema中用到的元素和数据类型来自命名空间"http://www.w3.org/2001/XMLSchema -->
    <!-- targetNamespace显示schema定义的元素来自命名空间http://www.w3school.com.cn -->
    <!-- elementFormDefault="qualifield"指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定 -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.cnblogs.com/rookie404/"
           xmlns="http://www.cnblogs.com/rookie404/"
           elementFormDefault="qualifield">
    <xs:element name="user">
      <xs:complexType>
        <xs:sequence>
          <!-- 声明一个元素 -->
          <!-- fixed为固定的不可变的-->
          <xs:element name="name" type="xs:string" fixed="rookie404"/>
          <!-- default为默认的-->
          <xs:element name="sex" type="xs:string" default="man">
          <xs:element name="age" type="xs:integer">
          <xs:element name="date" type="xs:date" >
          <!-- 声明一个默认元素元素 -->
          <xs:attribute name="lang" type="xs:string" default="string">
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:schema>

        实例文档: 

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- xmlns规定默认命名空间的声明 告知schema验证器,在此xml文档中使用的所有元素都声明于
        ”http://www.cnblogs.com/rookie404“ -->
    <!-- xmlns:xsi 这个命名空间里面的元素或者属性就必须要以xsi:这种方式来写,比如schemaLocation就是他的一个属性,
    所以写成xsi:schemaLocation,而默认命名空间不带类似xsi这种,其实xml标签名称有个专业叫法叫做QName,而如果没有前面的xsi:这种一般叫做NCName -->
    <!-- schemaLocation属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置:-->
    <user xmlns="http://www.cnblogs.com/rookie404/"
        xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.cnblogs.com/rookie404/ http://www.cnblogs.com/rookie404/user.xsd">
        <name>rookie404</name>
        <sex>man</sex>
        <age>23</age>
        <date>2016-09-15</date>
    </user>

         详细地址http://www.w3school.com.cn/schema/index.asp

  • 相关阅读:
    Codeforces Round #375 (Div. 2)
    ACM之路(19)—— 主席树初探
    CodeForces 722D Generating Sets
    CodeForces 721D Maxim and Array
    心情--2014区域赛
    【N-Quens II】cpp
    【N-Queens】cpp
    【Unique Paths II】cpp
    【Unique Paths】cpp
    【Palindrome Partitioning】cpp
  • 原文地址:https://www.cnblogs.com/rookie404/p/5873906.html
Copyright © 2020-2023  润新知