zoukankan      html  css  js  c++  java
  • XML

    学过 HTML?
    <html> ----> 标记
    xml 语法标记语言 <xxx>
    html 展示网页数据  ----- 网页
    xml 传输、存储数据  ----- 数据

    <html>
    <head></head>
    <body></body>
    </html> ---- 已经赋予了一些特定的含义

    <book>

    人(姓名,邮件,手机,住址)
    公司(人)

    <Company>
     <Person>
      <name>王五</name>
      <email>wangwu@itcast.cn</email>
      <tel>13812345678</tel>
      <address>北京</address>
     </Person>
    </Company>

    文档声明 <?xml ?>
    IE5.0 浏览器 很好XML 校验
    Eclipse行 桌面 不行???
    开发工具 IDE 自动修订编码
    记事本 手动设定编码 另存为

    standalone="yes"  表示 xml文件独立
    DTD 从当前文件内部查找

    standalone="no" 表示xml文件不独立
    DTD 从当前文件外部查找

    XML文档规范性约束
    1、元素(标签)必须结束
    <p>hello 段落 有效 --- xml <p>hello</p>
    <br> 换行 ---- xml <br />
    2、标签必须保持一致的嵌套顺序
    3、xml文件只能有一个根元素
    4、xml 空格、换行会保留
    <p>hello java</p>
    <p>      x
    m
    l
    </p>
    html 空格会被优化后去掉,不保留空格

    <books><book><name>think in java</name><price>98.0</price></book></books>
    5、区分大小写 <P> </p>
    <b'ook></b'ook>
    6、xml 属性值必须写"或者'
    <body bgcolor=red> 可以 ----> xml <body bgcolor="red"> <body bgcolor='red'>
    属性和子元素是一样的
    <Company>
     <Person>
      <name>王五</name>
      <email>wangwu@itcast.cn</email>
      <tel>13812345678</tel>
      <address>北京</address>
     </Person>
    </Company>

    <Company>
     <Person name="王五" email="wangwu@itcast.cn" />
    </Company>

    xml 注释快捷键 ctrl+shift+c

    <![CDATA[  ....  ]]>
    < 标签开始  &lt; --- less than
    > 标签结束  &gt; --- greater than
    " ' 属性值
    &

    s = "aaa?bb?cc"
    s.split("\?");


    DTD 传统的技术 XML出现之后 ---- 早期的XML约束技术   早期的框架 使用DTD来约束XML
    Schema 新技术 出现取代DTD技术
    DTD简单的,功能弱的约束 Schema复杂的,功能强大的约束

    IE 浏览器 识别XML,校验
    IE自动提供验证XML是否满足DTD约束的方法

    1、内部DTD standalone="yes" 设置文档独立
    <!DOCTYPE 书架 [   // 书架 根节点
     <!ELEMENT 书架 (书+)>  // 书架 元素 书+ 多本书
     <!ELEMENT 书 (书名,作者,售价)> // 书 元素 书名,作者,售价
     <!ELEMENT 书名 (#PCDATA)> // 书名 元素 #PCDATA 任意字符串
     <!ELEMENT 作者 (#PCDATA)>
     <!ELEMENT 售价 (#PCDATA)>
    ]>
    2、外部DTD standalone="no" 设置文档不独立
    <!DOCTYPE 书架 SYSTEM “book.dtd”>
    <!DOCTYPE > 固定了格式
    书架 根节点
    SYSTEM 表明你使用的是本机的外部DTD
    "book.dtd" DTD文件路径
    3、公共DTD
    <!DOCTYPE web-app PUBLIC
      "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      "http://java.sun.com/dtd/web-app_2_3.dtd">
    <!DOCTYPE > 固定了格式
    web-app 根节点
    PUBLIC 表明你使用了一个公共的DTD
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" DTD名称
    "http://java.sun.com/dtd/web-app_2_3.dtd" DTD文件网络路径

    元素定义
    元素嵌套
    <!ELEMENT books (book+) > 定义了一个元素books,books里面子元素book,+ 最少出现一次
    <!ELEMENT books ((book|tag),(name|price)) > books () 表示books 子元素 books(a,b) books子元素a,b 顺序
    books((book|tag)) 分组 表示books子元素可以是book或者是tag

    元素内部类型
    1、#PCDATA
    2、EMPTY
    3、ANY
    4、元素嵌套

    属性定义
     <!ATTLIST book
      bid
     >
    bid 类型应该指定什么?
    bid是不是唯一的 类型ID
    bid不是唯一的,可以是任意字符串 CDATA

    类型ID 约束#REQUIRED *** 值不能以数字开始!!
    类型CDATA  约束#IMPLIED --可以不写的属性
    类型CDATA 约束#FIXED "value1"
    类型CDATA 约束Default value 例如: 姓名 CDATA "xxx"

    实体定义
    有一部分数据 需要复用 定义为实体

    引用实体
    当你的元素或者属性中,有重复的内容 可以通过引用实体来复用

    参数实体 (必须在DTD中)
    当你的多个实体的内容中有重复的内容,可以通过参数实体来复用

    Schema 和 DTD
    Schema 约束 使用 XML语法
    Schema 数据类型非常丰富
    Schema 引用 Namespace 命名空间

    XML Schema 文件自身就是一个XML文件,但它的扩展名通常为.xsd
    约束文档 .xsd XML文件
    实例文档 .xml XML文件
    我们需要为自定义.xsd 元素指定一个命名空间!

    <books>
     <book>
      <id>101</id>
      <name>think in java</name>
     </book>
    </books>

    简单类型元素 :id name
    复杂类型元素 :books book


    <schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/book"
    xmlns:tns="http://www.example.org/book" --- 最后讲
    elementFormDefault="qualified">

    </schema>

    我们要定义一个Schema文档 语法
    <!ELEMENT <!ATTLISt <!ENTITY
    1、xmlns="http://www.w3.org/2001/XMLSchema"  <----- 定义一个Schema文档 语法
    2、使用http://www.w3.org/2001/XMLSchema里面提供语法 创建简单类型元素、创建复杂类型元素
    3、自定义元素(简单、复杂) 为它指定一个 Namespace  ---- >targetNamespace="http://www.example.org/book"


    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www. itcast.cn"
           elementFormDefault="qualified">
    我现在是不是要使用http://www.w3.org/2001/XMLSchema提供好的语法定义元素
    xmlns:xs = " ....... " 命名空间声明 可以有前缀 也可以没有
    没有指定前缀命名空间声明: 默认命名空间声明 xmln = "..."

    当你在Schema ALT+/ 显示所有可以使用标签
    Schema 用来定义元素的 显示的http://www.w3.org/2001/XMLSchema 定义的标签

    复杂类型元素 :有子元素的元素
    <element>
     <complexType>
       <sequence>
       </sequence>
     </complexType>
    </element>
    简单类型元素:没有子元素
    <element name="名称" type="类型"></element>


    命名空间
    Schema:
    <schema xmlns="http://www.w3.org/2001/XMLSchema"  ----> 指定当前schema 文件默认命名空间 http://www.w3.org/2001/XMLSchema
     targetNamespace="http://www. itcast.cn" ---- > 指定当前Schema文件定义简单.复杂的类型元素属于哪个命名空间
    elementFormDefault="qualified">

    XML:
    <itcast:书架 xmlns:itcast="http://www.itcast.cn" ---> 指定使用itcast前缀元素来自哪个命名空间
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ---> 固定的 指定该xml文档是一个受Schema约束的文档
    xsi --- > XML Schema Instance
    xsi:schemaLocation="http://www.itcast.cn book.xsd    ---> http://www.itcast.cn 命名空间 对应的 Schema文件在哪 book.xsd
    http://www.mytest.cn user.xsd "> ----> http://www.mytest.cn 命名空间 对应Schema在哪

    xsi:schemaLocation---> Xml schema instance 位置


    不使用命名空间例子
    <?xml version="1.0" encoding="UTF-8"?>
    <书架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="xmlbook.xsd">
     <书>
      <书名>JavaScript网页开发</书名>
      <作者>张孝祥</作者>
      <售价>28.00元</售价>
     </书>
    </书架>

    xmlbook.xsd
    <schema xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">


    http://www.w3.org/2001/XMLSchema 提供了定义所有元素标记

    设定子元素出现的次数
    <element name="orderItem"></element>
    maxOccurs="1" 最大出现次数
    minOccurs="1" 最小出现次数

    Schema
    1.要使用官方提供元素 定义自己使用 简单、复杂类型元素 xmlns="http://www.w3.org/2001/XMLSchema"
    2.定义完成自己的元素 为它们指定一个 命名空间  targetNamespace="http://www.itcast.cn"

    XML
    1. 编写根元素 同时指定根元素来自 命名空间 xmlns="http://www.itcast.cn"
    2. 声明这是一个XML Schema 实例 xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    3. 指定元素来自命名空间 在哪个 Schema文件里  xsi:schemaLocation ="http://www.itcast.cn demo.xsd"

  • 相关阅读:
    django email用法
    django ImageField用法
    django集成微博内容
    python读写zip文件
    读写文件
    404渲染
    bzoj1297 / P4159 [SCOI2009]迷路
    bzoj1009 / P3193 [HNOI2008]GT考试
    poj2115 C Looooops(exgcd)
    bzoj1407 / P2421 [NOI2002]荒岛野人(exgcd)
  • 原文地址:https://www.cnblogs.com/qq809306794/p/XML.html
Copyright © 2011-2022 走看看