zoukankan      html  css  js  c++  java
  • xml备忘

    实体引用

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

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

    这样会产生 XML 错误:

    <message>if salary < 1000 then</message>

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

    <message>if salary &lt; 1000 then</message> 

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

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

    注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

     

     

    XML 元素 vs. 属性

    请看这些例子:

    <person sex="female">
      <firstname>Anna</firstname>
      <lastname>Smith</lastname>
    </person> 
    
    <person>
      <sex>female</sex>
      <firstname>Anna</firstname>
      <lastname>Smith</lastname>
    </person> 
    

    在第一个例子中,sex 是一个属性。在第二个例子中,sex 则是一个子元素。两个例子均可提供相同的信息。

    没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。我的经验是在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。

    我最喜欢的方式

    下面的三个 XML 文档包含完全相同的信息:

    第一个例子中使用了 date 属性:

    <note date="08/08/2008">
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note> 
    

    第二个例子中使用了 date 元素:

    <note>
    <date>08/08/2008</date>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note> 
    

    第三个例子中使用了扩展的 date 元素(这是我的最爱):

    <note>
    <date>
      <day>08</day>
      <month>08</month>
      <year>2008</year>
    </date>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note>
    

    避免 XML 属性?

    因使用属性而引起的一些问题:

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

    请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

    不要做这样的蠢事(这不是 XML 应该被使用的方式):

    <note day="08" month="08" year="2008"
    to="George" from="John" heading="Reminder" 
    body="Don't forget the meeting!">
    </note>
    
  • 相关阅读:
    不知道下一步该怎么走
    我这里下雪了
    第一次用到锁,解决多线程访问的问题
    这2年
    《软件需求》阅读笔记06和jupyterLab学习第二天
    《软件需求》阅读笔记05和jupyterLab学习第一天
    《软件需求》阅读笔记04和anaconda的安装和配置
    《软件需求》阅读笔记03和mapreduce数据清洗
    day10 echart图表联动+周总结+《软件需求》阅读笔记02
    day9 完成统计图表和《软件需求》阅读笔记01
  • 原文地址:https://www.cnblogs.com/sycdirdir/p/2268367.html
Copyright © 2011-2022 走看看