• xml笔记(马士兵)


    验证一个xml是否正确,首先是标签是否成对出现,然后是是否遵从DTD规范。

    DTD或者后来的schema都是限制xml的标签的,完全可以自定义。这里的限制指的是,根节点是什么,子节点又是什么,这些节点又有什么属性,完全遵从DTD。

    xml的属性必须用引号。

    <![CDATA[……]]>cdata区,表示里面的数据完整显示,不存在什么特殊字符不要通过转义的。

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

    上面这句的yes指没有与之匹配的DTD,

    如果是no的话指有可能有与之匹配的DTD。

    当你要在内容里面保留特殊符号比如:回车,空格,TAB的时候建议用<![CDATA[……]]>就可以了,当CDATA区里面有]]>的时候,最后那个用&gt实体字符。

    实体码

    >      &gt

    <      &lt

    &      &amp

    "       &quot

    '        &apos

    所有的xml的根节点都是“/”,你就想着,最上面层节点上还有一个“/”节点。这个只是点是在马士兵的xml视频77,15分时看到

    两种不同的xml分析模型:(不必掌握,知道有这么2个东西,用到在查)

    1、DOM--所有数据位于内存

    2、SAX--流程性分析,不必把所有的数据Load到内存中,可分析大型的xml文件,常用于Server-side的xml-xhtml转换。

    简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的。

    注意:编写schema的时候,要将属性的设定,放在sequence之后。

    当要扩展简单属性的时候

    <title lang="en">Learning XML</title> 达到这种效果的时候,可以这么写

    <element name="title">
      <complexType>           //不管什么类型,扩展了都是复合的了
        <simpleContent>   //简单类型的扩展
          <extension base="string">  //基于什么类型的扩展
            <attribute name="lang" type="string"></attribute>
          </extension>
        </simpleContent>
      </complexType>
    </element>

    //复合类型的扩展

    <complexType name="z">
      <sequence>
        <element name="color1" default="red" type="string" minOccurs="0"></element>
        <element name="color2" type="string" fixed="black" minOccurs="0"></element>
      </sequence>
    </complexType>

    <complexType name="zzz">
      <complexContent>     //复合类型的扩展
        <extension base="tns:z">
          <choice>
            <element name="color3" type="string" minOccurs="0"></element>
            <element name="color4" type="string" minOccurs="0"></element>
          </choice>
        </extension>
      </complexContent>
    </complexType>

    限定只限于普通类型,因为不管复合类型最终的一层都是普通类型

    <simpleType name="zz">
      <restriction base="string"> //基于什么类型的限定
        <enumeration value="red1" />
        <enumeration value="red2" />
        <enumeration value="red3" />
        <enumeration value="red4" />
      </restriction>
    </simpleType>

    <letter>
       Dear Mr.<name>John Smith</name>.
      Your order <orderid>1032</orderid>
      will be shipped on <shipdate>2001-07-13</shipdate>.
    </letter>
    想达到这种混合类容的效果需要设置一个属性
    <xs:element name="letter">
      <xs:complexType mixed="true">  //mixed="true"
        <xs:sequence>
          <xs:element name="name" type="xs:string"/>
          <xs:element name="orderid" type="xs:positiveInteger"/>
          <xs:element name="shipdate" type="xs:date"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>

    当2个以上的schema整合的时候用
    <include schemaLocation=""></include>//好像要保证命名空间一致
    1.这里只记录一些学习笔记 2.这里只记录一些学习心得,如果心得方向有错,请留言 2.这里只记录一些日记(只为提升英语,暂时有点忙,等转行了开始写)
  • 相关阅读:
    resolv.conf 是什么
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
    bach cello
    windows 7 旗舰版 切换 中英文 界面
    geghi 教程 以lesmiserable 为例
    python 使用 tweepy 案例: PS4
    用Live Writer写博文插入程序代码的三个插件比较
    侧滑菜单
    [Android]简略的Android消息机制源码分析
    常用git命令
  • 原文地址:https://www.cnblogs.com/liyang31tg/p/3524165.html
Copyright © 2020-2023  润新知