xml - XML 模式如何允许元素的简单内容或复杂类型?
问题描述
在 XML 1.0 或 1.1 模式中,我如何定义一个可以是简单内容(例如整数)或复杂类型(例如具有属性的标记)的元素?
例如,我想允许“数字”标签允许直接指定一个整数或详细说明如何随机生成它:
两个都
<number>12345</number>
和
<number><random min="10000" max="15000"/></number>
应该被接受。如何才能做到这一点?
解决方案
你不能。在 XML Schema 中,标签的内容以两种方式之一描述:
a) 内容简单的标签,可能包含开放标签中的属性(内容复杂的简单类型)
b) 内容复杂的标签。在这种情况下,所有子标签之间的所有字符数据都称为“混合内容”。它可能分散在子标签之间的各个部分中的标签内容中。混合内容不能指定类型,应用程序忽略它是正常的。它最常见的目的是通过添加换行符和缩进来“漂亮地打印”XML 文档以显示结构。
最佳实践是使用两个不同的子标签(number
和randomNumber
)对这两个变体进行建模。
推荐阅读
- ffmpeg - 叠加图像缩小和移动
- ruby-on-rails - 缓存从 Rails API (google-id-token) 发出的 HTTP 请求?
- java - HttpTimeout 优雅地关闭连接
- azure - Azure 门户不允许我创建对 Azure 事件网格主题的订阅。创建按钮灰显
- python - 如果该人存在,如何将用户的输入放在返回的方法中?
- google-apps-script - 在谷歌表格中设置行高
- java - 为什么.apk 安装后会出现两个图标?
- python - 我正在尝试用一个公共列映射两个 Excel 工作表,我收到错误声明为属性错误
- powershell - 尝试使用 Powershell If 语句在 Active Directory 的传真字段中添加或替换内容
- postgresql - 更改在 Postgres 12 但不是 Postgres 11 上工作的表查询。“(”附近的语法错误