zoukankan      html  css  js  c++  java
  • xml

    http://www.cnblogs.com/foreverzd/p/3762874.html

    http://user.qzone.qq.com/715160622/blog/1398864240

    XML简单概述                                              

    1.Extensible Markup language可扩展标记语言;

    2.作用:具有层次性的描述有关系的数据;

      体现在:描述数据关系;软件配置,以描述程序模块之间的关系;

    语法介绍                                                    

    1.文档声明:

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

    注意编码的统一性 储存在内存中的编码格式,与解析器打开的两者统一

    2.元素:element

    成对标签 <label>pcdata</lable>

    元素属性 也可以理解或写成子元素;对XML标签中出现的所有空格和换行,XML解析程序都会当做是标签内容处理

    3.注释:

    <!-- 局部注释 -->

    <!--
    ...大段注释
    ...
    -->

    4.不解析的部分:当做原始内容直接输出

    <![CDATA[内容]]>

    5.处理指令:

    用来指挥解析器如何解析文档的内容,如:xml文档中可以用xml-stylesheet指令来通知xml解析引擎,引用css文件来显示xml文档内容:

    <? xml-stylesheet type="text/css" href="1.css"?>

    ------------------简单例子--------------------------------

    <?xml version="1.0" encoding="utf-8" ?>
    <?xml-stylesheet type="text/css" href="style.css"?>
    <menu>
        <!--this is a menu-->
        <![CDATA[
             with it was;
        ]]>
        
        <vegetables>
                <name>
                    蔬菜
                </name>
                <vegetable>
                    <cabbage>白菜</cabbage>
                    <carrot>萝卜</carrot>
                </vegetable>
                
        </vegetables>
        
        <fruits>
                <name>
                    水果
                </name>
                <fruit>
                    <apple>苹果</apple>
                    <banana>香蕉</banana>
                </fruit>
        </fruits>
    
    </menu>
    View Code

    XML的dtd约束                                            

    1.约束--->   编写来约束其书写规范

    dtd文件:document type definition,写一个文档来约束xml文档的元素组成,规定其书写  .dtd后缀名;

    2.元素类型:element

    <!ELEMENT 约束元素名(子属性,,,)>

    在XML文件中如何引入:

    <!DOCTYPE 文档根节点 SYSTEM "dtd文件.dtd">

    3.元素属性说明 attribute

    <!ATTLIST 元素名
      属性名 属性值类型 设置说明
      属性名 属性值类型 设置说明
    >

    如:

    <!ATTLIST 商品
      类别 CDATA #REQUIRED
      颜色 #IMPLIED
    >

    1.设置说明

    REQUIRED 必须有此属性,
    IMPLIED 可有可不有
    FIXED 属性固定值
    默认值

    2.属性值类型:id ,enumerated ,entity, cdata

      .............

    实体定义:为一段内容创建一个别名,以后可以用此别名来在文档中代替原来内容,

    引用实体:在xml文档中被引用,

    <!ENTITY 实体名称 "引用实体内容">

    参数实体:在dtd文件中被引用可以做到复用的作用

    !ENTITY % 实体名称 "参数实体内容">

    3.为了清除的看到DTD对有其引入的XML文件进行约束,可在MyEclipse自动检测

    <?xml version="1.0" encoding="UTF-8"?>
    <!ENTITY % has "yes|no|true|false">
    <!ENTITY blank "[   ]">
    <!ENTITY % common-attributes
        "name CDATA #REQUIRED
        id ID #REQUIRED
        price CDATA #REQUIRED
        description CDATA #IMPLIED
        has (%has;) #REQUIRED" 
        >
    
    <!ELEMENT goods (clothes*,shoes?)>
    <!ATTLIST goods shop-name CDATA #REQUIRED>
    
    <!ELEMENT clothes (jean*,shirt*)>
    <!ELEMENT jean (#PCDATA)>
    <!ELEMENT shirt (#PCDATA)>
    
    <!ATTLIST jean %common-attributes;>
    <!ATTLIST shirt %common-attributes;>
    goods.dtd
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE goods SYSTEM "goods.dtd">
    <goods shop-name="best">
        <clothes>
            <jean has="no" name="jean1" price="111" id="jean1"></jean>
            <jean has="yes" name="33" price="33" id="jean2"></jean>
            <shirt has="yes" name="hehe" price="0.0" id="ee">&blank;</shirt>
        </clothes>
    
    </goods>
    goods.xml

    XML的schema约束                                      

      ---详细见W3C

    --是一种定义和描述xml文档结构和内容的模式语言,其出现是为了克服dtd的局限性;

    1.VS  DTD:

    1 符合xml语法格式
    2 Dom,sax XmlAPI很容易解析出XML Schema中的内容
    3 约束强大,更多数据类型,还可以定义自己的数据类型
    4 当不能定义实体,有自己的方式。

    2.语法简介:命名空间的引入,、

    1.simpleType元素 约束

    元素:<xs:element name="ElementName" type="DataTypeOfElement">

    ---DataTypeOfElement
    xs:string
    xs:decimal
    xs:integer
    xs:boolean
    xs:date
    xs:time

    属性:<xs:attribute name="attributeName" type="attributeValueType">

    属性值说明包括:默认default  指定fixed 必选required

    元素限定:

    限定的类型基于:

    <xs:restriction base="xs:string/integer/boolean/date/time/decimal">

    限定的内容or:maxInclusive minInclusive enumeration、,,,

      <xs:minInclusive value="0"/>

      <xs:maxInclusive value="110"/>

       <xs:enumeration value="apple"/>

    <xs:enumeration value="banana"/>

    <xs:pattern value="[A-Z][A-Z][A-Z]"/>

    </xs:restriction>

    类似实体的复用:

    <xs:element name="name" type="nameValue"/>

    <xs:simpleType name="nameValue">
    <xs:restriction base="xs:string">
    <xs:pattern value="[a-zA-Z0-9]{8}"/>
    </xs:restriction>
    </xs:simpleType>

    2.复杂元素的 约束:合元素指包含其他元素及/或属性的 XML 元素。

    <xs:complexType> 、、</xs:complexType>
    <xs:sequence> </xs:sequence>

    等等........

    3.类型指示器:

    Order:all choice Sequence
    Occurrence:Maxoccur minoccur
    Group:Group name attributeGroup name

    3.简例:

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!-- 
        xmlns="http://www.w3.org/2001/XMLSchema            
            来自外界的命名空间,
            是否默认来确定是否有书写当前模式文件的前缀命名
        targetNamespace="http://www.example.org/letter" 
            自身作为其他xml目标文件约束的命名空间
    
     -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
        targetNamespace="http://www.example.org/letter"
        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 version="1.0" encoding="UTF-8"?>
    <!-- 
            xmlns="default namespace"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="{namespace} {location}"
     -->
    <note xmlns="http://www.example.org/letter"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.example.org/letter letter.xsd"
        >
        <to>逗B</to>
        <from>猴子</from>
        <heading>呵呵</heading>
        <body>呵呵呵呵</body>
    </note>
  • 相关阅读:
    yii2框架随笔9
    yii2源码学习笔记(五)
    yii2源码学习笔记(四)
    yii2源码学习笔记(三)
    yii2源码学习笔记(二)
    yii2源码学习笔记
    学习yii2.0框架阅读代码(一)
    (转)OAuth 2.0授权协议详解和流程
    (转)JavaScript 中对变量和函数声明的“提前(hoist)”
    JavaScript 中的算术运算
  • 原文地址:https://www.cnblogs.com/pengkunfan/p/3763296.html
Copyright © 2011-2022 走看看