首页 > 解决方案 > XML 模式如何允许元素的简单内容或复杂类型?

问题描述

在 XML 1.0 或 1.1 模式中,我如何定义一个可以是简单内容(例如整数)或复杂类型(例如具有属性的标记)的元素?

例如,我想允许“数字”标签允许直接指定一个整数或详细说明如何随机生成它:

两个都

<number>12345</number>

<number><random min="10000" max="15000"/></number>

应该被接受。如何才能做到这一点?

标签: xmlxsdxsd-1.1

解决方案


你不能。在 XML Schema 中,标签的内容以两种方式之一描述:

a) 内容简单的标签,可能包含开放标签中的属性(内容复杂的简单类型)

b) 内容复杂的标签。在这种情况下,所有子标签之间的所有字符数据都称为“混合内容”。它可能分散在子标签之间的各个部分中的标签内容中。混合内容不能指定类型,应用程序忽略它是正常的。它最常见的目的是通过添加换行符和缩进来“漂亮地打印”XML 文档以显示结构。

最佳实践是使用两个不同的子标签(numberrandomNumber)对这两个变体进行建模。


推荐阅读