`
DanielHan
  • 浏览: 57157 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
074641d7-eb86-343f-a745-65a0f693edb5
设计模式
浏览量:7364
社区版块
存档分类
最新评论

xml属性和子元素的选择

    博客分类:
  • xml
xml 
阅读更多
    W3C组织认为:属性通常提供不属于数据组成部分的信息,如果属性值里包含的信息属于该实体本身,则应该使用子元素来指定此信息。简而言之,W3C推荐尽量使用子元素,而避免使用属性。
    使用属性有如下几个缺点:
  • 属性无法包含多个值,而通过扩展子元素则可以包含多个值。
  • 属性无法描述树状结构,而子元素可以。
  • 属性不易扩展。
  • 属性难以阅读和维护。


举例:如web.xml配置servlet组件
<servlet>
    <servlet-name>spring3mvc</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>spring3mvc</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

这是通常的配置格式,但如下配置格式就不能通过:
<servlet servlet-name="spring3mvc" servlet-class="org.springframework.web.servlet.DispatcherServlet"/>
<servlet-mapping servlet-name="spring3mvc" url-pattern="*.do"/>


虽然W3C组织在XML问题上是权威的,但由于使用属性存储信息比使用子元素来存储信息要简洁得多,如果大量使用子元素来存储信息,将导致XML文档增长速度还快,不用多久就会臃肿不堪,因此现在主流的Java框架更倾向于使用属性方式来存储信息。当然,实际开发中如果使用XML交换数据,依然应该优先考虑使用子元素来存储数据。
0
1
分享到:
评论

相关推荐

    C# LinqXML将XML文件中的属性转换为元素

    数据以元素的形式存在,元素可以有子元素、文本内容和属性。属性是附加在元素上的键值对,用于提供额外的信息。 在某些情况下,将属性转换为元素可能是有益的,例如当属性值包含复杂数据或需要进行更复杂的查询时。...

    C#读取XML 的节点,以及属性

    读取XML属性: 1. 对于 `XmlDocument`,你可以使用 `Attributes` 属性来访问元素的属性集合,然后通过属性名获取属性值: ```csharp XmlNode node = xmlDoc.SelectSingleNode("//element[@attr1]"); XmlAttribute ...

    XML中dom根据属性检索节点(C#)

    在提供的实验1文件中,可能包含了一个示例XML文件和相关的C#代码,用于演示如何根据属性检索XML节点。通过分析这些代码,你可以更深入地理解这个过程,并将这些知识应用到实际项目中。对于初学者而言,理解并掌握...

    C# LinqXML删除一个元素的所有属性

    XML元素是XML文档的基本构建块,它们可以包含属性、子元素和文本内容。属性是附加在元素上的键值对,用于提供额外的信息。删除元素的所有属性是常见的操作,特别是在清理或格式化XML数据时。 接下来,我们来看如何...

    Delphi中创建简单XMl文件以及读取XML子节点下所有属性的方法

    这段代码会遍历XML文档中的每个子节点,检查它们是否是元素节点,如果是,则打印出节点名和它的所有属性。 总结来说,Delphi中处理XML主要依赖于`TXMLDocument`组件,通过创建元素、设置属性、保存和加载文件,以及...

    qt xml操作 遍历

    - 遍历DOM树:QDomElement代表XML元素,通过getElementsByTagName()、firstChildElement()、nextSiblingElement()等方法可以遍历元素及其子元素。 - 属性操作:QDomElement的attribute()和setAttribute()方法用于...

    delphi解析xml属性节点

    这涉及到更复杂的代码,但基本思路是为TXMLDocument对象设置一个命名空间解析器,并使用解析后的命名空间前缀来访问元素和属性。 7. **错误处理**: 在解析过程中,一定要注意处理可能出现的错误,如XML格式错误、...

    WEB开发 之 XML 属性.docx

    2. **属性与元素的选择**:在某些情况下,属性和子元素可以传递相同的信息。然而,没有硬性规定何时使用属性,何时使用子元素。在HTML中,属性使用较为方便,但在XML中,推荐使用子元素来表示数据,因为属性不易扩展...

    C# LinqXML查找根元素

    例如,你可以通过根元素进一步查询其子元素或属性,如下所示: ```csharp // 获取根元素的所有子元素 var childElements = rootElement.Elements(); // 获取根元素的特定子元素 var child1 = rootElement.Element...

    Android Drawable 全部 xml 元素和属性用法

    本篇将深入探讨Android Drawable XML元素和属性的用法。 1. **Drawable XML概述** Android的Drawable XML允许开发者在代码之外定义图形对象,如颜色、形状、位图等,以提高可维护性和重用性。XML文件通常存放在res...

    XML技术选择题

    多重数值通常由子元素表示,而属性、命名空间和标记则不支持多重值。将一个DTD元素嵌套在另一个DTD中,通常使用内部参数实体。在W3C XML Schema文档中定义了目标命名空间后,要在XML文档中引用该Schema,可以使用`...

    XML和属性文件读取和写入

    XML文件由一系列元素构成,每个元素可以有子元素、属性和文本内容。属性文件则更简单,主要用于存储键值对,常用于Java应用程序的配置。 ### XML读取 在Java中,可以使用DOM(Document Object Model)、SAX...

    C# LinqXML合计XML元素值

    XML文档由一系列元素组成,每个元素可以有属性和子元素。当我们想要计算XML文档中特定元素的所有子元素的总和时,LINQ to XML提供了便捷的方法。 以下是使用C# LINQ to XML进行元素值总计的基本步骤: 1. 引入命名...

    xml电子公告

    解析XML文件时,可以通过读取这些元素和它们的属性来获取所需信息。例如,如果你想获取北京的最高气温,你可以查找`&lt;city&gt;`元素的`name`属性为"北京",然后在其子元素`&lt;temperature&gt;`下的`&lt;high&gt;`元素中获取数据。 ...

    示例描述:本章介绍LINQ to XML相关技术和使用

    CreateSubElement 演示通过XElement创建具有子元素的XML元素。 CreateXMLTree 演示通过XElement创建复杂的完整的XML树。 QeuryAttributesElement 演示通过XElement查询XML元素的属性。 QueryInContent ...

    XML习题集(选择、填空、判断和编程题)

    元素是XML文档的基本构建块,可以包含文本、子元素或两者都有。属性提供附加信息,但应尽量少用,以免影响数据的结构化。在习题中,你可能需要识别有效和无效的元素及属性结构。 四、XML文档类型定义(DTD) DTD是...

    jdom读取xml全属性文件

    通过调用`getRootElement()`方法获取根元素,然后遍历所有`&lt;property&gt;`子元素。对于每个`&lt;property&gt;`元素,我们使用`getAttributeValue()`方法获取其属性值,并打印出来。 请注意,你需要替换`"path_to_your_xml_...

    xml属性文件读写

    2. **添加元素和属性**:通过`createElement()`和`createAttribute()`方法创建元素和属性,然后通过`setAttribute()`设置属性值。 3. **构建XML结构**:将元素添加到父元素,形成XML树的结构。 4. **序列化XML**:...

    XML解析和生成工具

    使用这些工具时,首先需要理解XML的基本语法和结构,然后根据需求选择合适的解析和生成策略。对于小型XML文档,DOM可能更适合;而对于大型或内存受限的环境,SAX解析器更优。结合`Markup.cpp`和`Markup.h`,你可以...

    XML实用教程电子教案

    5. **XML命名空间**:在XML中,命名空间用于解决元素和属性名的冲突问题,通过前缀和URI(Uniform Resource Identifier)来区分。 6. **XML注释**:`&lt;!-- 这是一个XML注释 --&gt;`用于提供文档的解释性信息,不会被...

Global site tag (gtag.js) - Google Analytics