zoukankan      html  css  js  c++  java
  • XML 02: 基本语法

    <?xml version="1.0" encoding="UTF-8"?>  <!-- XML的文档声明, 必须放在第01行 -->
    <goodslist>  <!-- 标签是大小写敏感的, 与HTML不同 -->
        <good id="1001" production_date="2018-4-1"> <!-- 每个标签都可以拥有属性, id是属性名, "1001"是属性值,必须使用双引号引用。它们都是自定义的 -->
             <price>12</price>  
             <name>香蕉</name>
             <place>广州</place>
        </good>     
        <good id="1002">
             <price>39</price>  
             <name>苹果</name>
             <place>北京</place>
        </good>     
        <good id="1003">
             <price>33</price>  
             <name>&lt;芒果</name>  <!-- 为了避免造成混淆, 特殊标记需要使用特殊符号来表示, &lt; 表示小于号 -->
             <place>上海</place>
        </good>     
       <xxx/> <!-- 这是一个单标记 --> </goodslist>

     

    1.五个在XML文档中预定义好的实体:

    &lt; < 小于号
    &gt; > 大于号
    &amp; & 和
    &apos; ' 单引号
    &quot; " 双引号

     

    2.约束文档(给文档添加约束), 一般约束都是开发好了的, 遵守即可。

    例如,DTD文档

    <?xml version="1.0"?>
    <!DOCTYPE note [
      <!ELEMENT note (to,from,heading,body)>  <!-- 如果根元素是note,子元素必须依次是to,from,heading,body. 不可以添加属性 -->
      <!ELEMENT to      (#PCDATA)>         <!-- #PCDATA means 放置文本内容 -->
      <!ELEMENT from    (#PCDATA)>
      <!ELEMENT heading (#PCDATA)>
      <!ELEMENT body    (#PCDATA)>
    ]>  <!-- 约束规则 -->
    <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>  <!-- XML -->

    3.  DTD文档约束的引入方式

    <1>  内部引入: 直接在XML文件里书写

    <2>  外部引入

      <a>  把DTD文档放在本地

      <b>  把DTD 文档放在网络上

    <a-1>

    在本地创建一个DTD file

     <a-2>

    放置DTD代码

    <a-3>

    创建一个遵守DTD 的XML文档 (note2.xml)

    需要添加如第二行所示的声明, "note.dtd"表示需要遵守的DTD文档的路径.

    最终效果 (引入成功):

    <b-1>  网络引入是更常见的方式

    4.  Schema 约束

    下面这个例子是一个名为 "note.xsd" 的 XML Schema 文件:

     <4-1>  创建一个Schema 文件

    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3school.com.cn"
    xmlns="http://www.w3school.com.cn" <!-- ns means name space, 命名空间一般都使用网址-->
    elementFormDefault="qualified">
    
    <xs:element name="note">  <!-- 定义了一个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>

    <4-2> 如果有多种约束同时存在, 需要声明所写的代码遵循了哪种约束, 则需要表明命名空间, 类似于Java中的:

    同理, 如果需要在XML里使用Schema约束文档:

    <4-3>  创建一个新的XML文档, note3.xml

    对 XML Schema 的引用

    此文件包含对 XML Schema 的引用:

    <?xml version="1.0"?>
    <note
    xmlns="http://www.w3school.com.cn"  <!-- 表示引入的Schema属于哪个命名空间 -->
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3school.com.cn note.xsd"> <!-- 表示约束文档的位置, 可以解释为命名空间"w3"对应着"note.xsd" -->
    <!-- 把xmlns, xmlns:xsi, xsi:schemaLocation 这三个属性赋给根标签 note  -->
    <!-- 遵守note.xsd 中的约束规则 -->

    <to> </to>
    <from> </from>
    <heading> </heading>
    <body> </body>

    </note>

    整体效果:

    <4-4>  如果需要引入多个xsd (例如, 引入sikiedu发布的, 非本地的 xx.xsd)

     <4-5> 添加命名空间

    <1> 给命名空间起一个别名

    xmlns = "http://www.w3school.com.cn"      <!-- 默认的命名空间-->

    xmlns:w3 = "http://www.w3school.com.cn"   <!-- 起别名为w3-->

    xmlns:se = "http://www.sikiedu.com"       <!-- 起别名为se-->

    <2>使用

     如果不声明命名空间, 则使用默认的命名空间


     

    id="1001"
  • 相关阅读:
    libuv 中文编程指南(一)序言
    一些鲜为人知却非常实用的数据结构
    libuv 中文编程指南(二)libuv 基础
    Zookeeper 的 Lua 绑定(二)
    高度怀疑
    不能没有你
    第一次看流星雨记
    调侃下蓝网队 我还是比较极端的 不要好 那就要坏吧
    摇滚校园
    守法公民
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/13454430.html
Copyright © 2011-2022 走看看