空简单元素和空复杂元素之间的区别-XML

问题描述

xml文件中的空简单元素和空复杂元素之间是否有区别?我该如何区分它们?

在w3schools中,我发现:

  1. empty simple element <element></element><element />;此外,它还说“空元素可以具有属性。”。
  2. empty complex element <product pid="1345"/>

解决方法

成为简单复杂是一种类型的属性,而不是(直接)元素的属性。我们可以说元素符合类型(特别是在XSD Schema中定义的类型),并且可以说类型是简单或复杂的,但是简单和复杂类型的类别在那些他们允许。具体来说,复杂类型和简单类型都可能允许空元素(例如<e/>)和具有文本内容的元素(例如<e>foo</e>)。如果我们看到一个具有属性或子元素的元素,那么我们知道它不能符合任何简单类型,但是如果没有,则我们不看模式就不会知道。

“如何区分它们”这个问题的答案是,您需要查看模式;您不能仅将它们与实例区分开来。

,

简单元素意味着它没有子元素,也没有属性。如果元素具有子元素或属性,则将其视为 complex

分别说一个元素为就是说它没有内容–不仅没有子元素,而且没有子文本节点。

因此,简单元素和复杂元素都可以为空或非空。

侧面说明:<e/><e></e>相对于start标签是自动关闭的,无论其元素是简单还是复杂,都是无关紧要的,并且通常无法在XML级别上检测到或定义

示例

  1. <e></e>很简单而且很空。
  2. <e>abc</e>很简单而且不是空的。
  3. <e a="1"></e>很复杂而且很空。
  4. <e a="1">abc</e>是复杂且非空的。

另请参见

摘要

通常,将 complex 类型视为具有XML子结构,而将 simple 类型视为缺乏XML子结构。认为意味着没有内容。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...