XML模式:添加具有不可变值的元素
我正忙于为行业标准报告构建XML模式。此报告有不同的部分,每个部分有多个标题,每个标题下有多个字段。大多数字段需要一些用户输入;但是,有些字段是不可变的,基本上用作文档 目标是使用户能够从XML+XSD构建报告,而无需参考任何其他文档。这意味着我需要在XSD中定义某些静态元素 基本上,我有以下几点:XML模式:添加具有不可变值的元素,xml,xsd,Xml,Xsd,我正忙于为行业标准报告构建XML模式。此报告有不同的部分,每个部分有多个标题,每个标题下有多个字段。大多数字段需要一些用户输入;但是,有些字段是不可变的,基本上用作文档 目标是使用户能够从XML+XSD构建报告,而无需参考任何其他文档。这意味着我需要在XSD中定义某些静态元素 基本上,我有以下几点: <heading> <field1>user input</field1> <field2/> (static) ** <field
<heading>
<field1>user input</field1>
<field2/> (static) **
<field3>user input</field3>
</heading>
用户输入
(静态)**
用户输入
**这是我的问题领域
问题(根据Paul的回答编辑):
可以使用
sequence
元素定义具有固定子元素序列的元素内容模型
您可以使用maxOccurs
和minOccurs
属性来声明在任何给定情况下(包括“0”或“无界”)允许或需要任何给定元素的实例数
关于simpleContent,您可以使用restriction
元素来限制任何给定元素或属性的可能文本内容。在限制
中,您可以使用模式
(使用只传递所需内容的正则表达式)、枚举
(使用单个选项)或断言
(断言值必须是所需内容)
annotation
对于提供人类可读的文档非常有用,但对于任何针对机器消费的文档来说就没那么有用了
新问题增编
强制性强制性内容并不完全是不合理的,但应慎重考虑使用情况。
如果仅仅从文件的存在就可以合理地推断出这些信息,那么将其包括在内真的值得吗
如果你只是在编纂一个现有的标准,那么你真的没有选择的余地。如果内容必须存在,那么这个事实应该反映在模式中。我在XSD中使用这些元素和属性。我的问题是如何具体地使用这些组合来定义1。所需元素为2。应始终具有相同的预定义值和3。这是否是好的设计实践我怎么没有回答你的问题?给定一个序列,一个必需的元素是minOccurs=1的元素,如果你想让它有一个预定义的值,那么“关于simpleContent”开头的段落就提供了一些如何实现这一点的选项。重读你的回答后,我明白了。我剩下的一个问题是:这真的是一个好主意吗?这是一种常见的使用模式吗?