空简单元素和空复杂元素之间的区别 - XML
Difference between empty simple element and empty complex element - XML
xml 文件中的空简单元素和空复杂元素之间有什么区别吗?我怎样才能区分它们?
我在 w3schools 上发现:
- empty simple element
<element></element>
或 <element />
;另外它说“空元素可以有属性”。
- empty complex element
<product pid="1345"/>
简单的元素意味着它没有子元素,也没有属性。如果一个元素有子元素或属性,它被认为是复杂。
另外,说一个元素是空就是说它没有内容——它不仅没有子元素,也没有子文本节点。
因此,简单元素和复杂元素都可能为空或 non-empty。
旁注:起始标签是否自闭,<e/>
vs <e></e>
,无论其元素是简单还是复杂,都是无关紧要的,通常无法在开始时检测或定义XML级。
示例
<e></e>
简单空洞
<e>abc</e>
很简单 non-empty.
<e a="1"></e>
复杂而空洞。
<e a="1">abc</e>
复杂而 non-empty.
另见
- Define an XML element that must be empty and has no attributes
总结
通常,将 复杂 类型视为具有 XML 子结构,将 简单 类型视为缺少 XML 子结构。认为 empty 表示没有内容。
简单或复杂是属性类型,而不是(直接)元素。我们可以说一个元素符合一个类型(具体来说,定义在 XSD Schema 中的类型),我们可以说这个类型是简单类型还是复杂类型,但是简单类型和复杂类型的类别在他们允许的元素种类。具体来说,复杂类型和简单类型都可能允许空元素(例如 <e/>
)和具有文本内容的元素(例如 <e>foo</e>
)。如果我们看到一个元素具有属性或子元素,那么我们就知道它不能符合任何简单类型,但如果两者都没有,那么我们不看模式就不知道。
您的问题“我如何区分它们”的答案是您需要查看架构;你不能仅从实例中区分它们。
xml 文件中的空简单元素和空复杂元素之间有什么区别吗?我怎样才能区分它们?
我在 w3schools 上发现:
- empty simple element
<element></element>
或<element />
;另外它说“空元素可以有属性”。 - empty complex element
<product pid="1345"/>
简单的元素意味着它没有子元素,也没有属性。如果一个元素有子元素或属性,它被认为是复杂。
另外,说一个元素是空就是说它没有内容——它不仅没有子元素,也没有子文本节点。
因此,简单元素和复杂元素都可能为空或 non-empty。
旁注:起始标签是否自闭,<e/>
vs <e></e>
,无论其元素是简单还是复杂,都是无关紧要的,通常无法在开始时检测或定义XML级。
示例
<e></e>
简单空洞<e>abc</e>
很简单 non-empty.<e a="1"></e>
复杂而空洞。<e a="1">abc</e>
复杂而 non-empty.
另见
- Define an XML element that must be empty and has no attributes
总结
通常,将 复杂 类型视为具有 XML 子结构,将 简单 类型视为缺少 XML 子结构。认为 empty 表示没有内容。
简单或复杂是属性类型,而不是(直接)元素。我们可以说一个元素符合一个类型(具体来说,定义在 XSD Schema 中的类型),我们可以说这个类型是简单类型还是复杂类型,但是简单类型和复杂类型的类别在他们允许的元素种类。具体来说,复杂类型和简单类型都可能允许空元素(例如 <e/>
)和具有文本内容的元素(例如 <e>foo</e>
)。如果我们看到一个元素具有属性或子元素,那么我们就知道它不能符合任何简单类型,但如果两者都没有,那么我们不看模式就不知道。
您的问题“我如何区分它们”的答案是您需要查看架构;你不能仅从实例中区分它们。