zoukankan      html  css  js  c++  java
  • 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.这里只记录一些日记(只为提升英语,暂时有点忙,等转行了开始写)
  • 相关阅读:
    c#实现串口操作 SerialPort
    ASP.NET Core 上传大文件无法接收的问题
    如何将qlv格式的腾讯视频转换为mp4格式
    C#中HttpWebRequest的GetRequestStream执行的效率太低,甚至偶尔死掉
    LGPL 与GPL的区别
    ffmpeg
    HTTP协议/RTSP协议/RTMP协议的区别
    C#写的CRC16检验算法
    VS里属性窗口中的生成操作释义
    iOS:APNS推送主要代码
  • 原文地址:https://www.cnblogs.com/liyang31tg/p/3524165.html
Copyright © 2011-2022 走看看