XML学习笔记-XML基础

以下资料整理均来源于W3school,想学习的伙伴可自行搜索;

1. XML是什么?

  • XML 指可扩展标记语言(EXtensible Markup Language
  • XML 是一种标记语言,很类似 HTML
  • XML 的设计宗旨是传输数据,而非显示数据
  • XML 标签没有被预定义。您需要自行定义标签
  • XML 被设计为具有自我描述性
  • XML 是 W3C 的推荐标准

2. XML文件用途

XML是一种独立的文本标记语言,主要用于数据的传输,通过 XML,数据能够存储在独立的 XML 文件中。这样你就可以专注于使用 HTML 进行布局和显示,并确保修改底层数据不再需要对 HTML 进行任何的改变。

3. XML树结构

实例:


<note>
<to>Georgeto>
<from>Johnfrom>
<heading>Reminderheading>
<body>Don't forget the meeting!body>
note>

第一行:XML声明,定义其版本(1.0)和所使用的编码(ISO-8859-1);

第二行:开始标签;

第三行~第六行:、、、标签存储信息

第七行:结束标签;

XML为一种树状结构:

XML 文档必须包含根元素。该元素是所有其他元素的父元素。

所有元素均可拥有子元素:

<root>
  <child>
    <subchild>.....subchild>
  child>
root>

父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹);

所有元素均可拥有文本内容和属性(类似 HTML 中);

4. XML语法规则

  • 所有XML元素都必须有关闭标签

    • 例:

      <p>This is a paragraphp>
      <p>This is another paragraphp>  
      
  • XML标签对大小写敏感

    • 例:

      <Message>这是错误的。message>
      
      <message>这是正确的。message> 
      
  • XML必须正确地嵌套

    • 例:

      <b><i>This text is bold and italici>b>
      
  • XML文档必须有跟元素

    • 例:

      <root>
        <child>
          <subchild>.....subchild>
        child>
      root>
      
  • XML属性值需要加引号

    • 例:

      <note date="08/08/2008">
      <to>Georgeto>
      <from>Johnfrom>
      note> 
      
  • 实体引用

    • 在 XML 中,一些字符拥有特殊的意义。

      如果你把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

      为了避免这个错误,请用实体引用来代替 “<” 字符:

      <message>if salary < 1000 thenmessage> 
      

      在 XML 中,有 5 个预定义的实体引用:

      < < 小于
      > > 大于
      & & 和号
      ' 单引号
      " " 引号
  • XML中的注释

    •  
      
  • 在XML中,空格会被保留格式

  • XML以LF存储换行

    • 在 Windows 应用程序中,换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。这对字符与打字机设置新行的动作有相似之处。在 Unix 应用程序中,新行以 LF 字符存储。而 Macintosh 应用程序使用 CR 来存储新行

5. XML元素

  • 什么是XML元素

    XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

    元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性

  • XML命名规则

    • 名称可以含字母、数字以及其他的字符
    • 名称不能以数字或者标点符号开始
    • 名称不能以字符 “xml”(或者 XML、Xml)开始
    • 名称不能包含空格
    • 可使用任何名称,没有保留的字词

    注意事项:

    1. 避免 “-” 字符。如果您按照这样的方式进行命名:“first-name”,一些软件会认为你需要提取第一个单词;
    2. 避免 “.” 字符。如果您按照这样的方式进行命名:“first.name”,一些软件会认为 “name” 是对象 “first” 的属性;
    3. 避免 “:” 字符。冒号会被转换为命名空间来使用;
    4. 非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题
  • XML元素可扩展

    XML元素可随时进行扩展,扩展后可携带更多信息,且原程序不受影响;

6. XML属性

  • 什么是XML属性

    XML属性同HTML中一样,提供元素的额外信息;

  • XML属性必须加引号

  • 避免使用属性的原因

    • 属性无法包含多重的值(元素可以)
    • 属性无法描述树结构(元素可以)
    • 属性不易扩展(为未来的变化)
    • 属性难以阅读和维护
  • 针对元数据的XML属性

    ID 索引可用于标识 XML 元素

    <messages>
      <note id="501">
        <to>Georgeto>
        <from>Johnfrom>
        <heading>Reminderheading>
        <body>Don't forget the meeting!body>
      note>
      <note id="502">
        <to>Johnto>
        <from>Georgefrom>
        <heading>Re: Reminderheading>
        <body>I will notbody>
      note> 
    messages>
    

    上面的 ID 仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分

    元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素

7. XML验证

  • 形式良好的XML文档遵守以下规则

    • XML 文档必须有根元素
    • XML 文档必须有关闭标签
    • XML 标签对大小写敏感
    • XML 元素必须被正确的嵌套
    • XML 属性必须加引号
  • 验证XML文档

    合法的 XML 文档是“形式良好”的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则:

    
    
    <note>
    <to>Georgeto>
    <from>Johnfrom>
    <heading>Reminderheading>
    <body>Don't forget the meeting!body>
    note> 
    
  • XML DTD

    DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:

    
      <!ELEMENT to      (#PCDATA)>
      <!ELEMENT from    (#PCDATA)>
      <!ELEMENT heading (#PCDATA)>
      <!ELEMENT body    (#PCDATA)>
    ]> 
    
  • XML Schema

    W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:

    <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> 
    

8. XML CSS

  • 使用CSS显示XML

    在文档第二行增加链接到CSS文件即可

9. XML XSLT

  • 使用XSLT显示XML

    XSLT 是首选的 XML 样式表语言

    XSLT (eXtensible Stylesheet Language Transformations) 远比 CSS 更加完善

    在文档第二行增加链接到XSL文件即可

你可能感兴趣的:(笔记)