我习惯于创建XML文件,但是创建我自己的XSD文件以验证XML内容还是很新的。所以我想问几个关于XSD文件的问题。
首先,我有一个XML文件。现在我需要创建一个XSD文件来严格验证XML内容。但我也想使用相同的XSD文件在我的网站中生成一些用户界面来输入值。对于每个标签或每个标签中的每个属性,我们将有1个输入,选择框,切换按钮等。之后,使用输入的值和XSD文件结构生成XML文件。
但现在我对这两种情况有疑问:
我需要一个标签来向我们的用户显示此输入字段的内容。我可以在每个标记中放置一个具有固定值的属性,以将其用于标签。但是out XML标签不需要这个属性。那么如何在XSD文件中添加一些东西来存储每个标签的标签而不影响XML文件呢?
我想创建一个下拉列表,选择其中一个值,然后在生成时,XML文件将所选值作为其属性值之一。好吧,我可以使用枚举约束来限制。但有时候这个值很难理解,所以我需要用其他东西来表示,比如值为1,但文本显示为“正在运行”。这有点像上面的问题,但需要限制部分。
所以任何人都可以帮助我解决这两起案件。我应该在XSD文件中使用什么标记属性将这些不相关的信息存储到XML文件中?
谢谢你。
=============================================== =====
更新:更具体地说明我的问题。 例如,我在我的xsd文件中有这个
<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
这个只有一个限制值来验证xml标记。但我想为每个枚举标记添加另一个值来存储标签或类似的东西:
<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi" label="Option 1"/>
<xs:enumeration value="Golf" label="Option 2"/>
<xs:enumeration value="BMW" label="Option 3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
这个添加的东西不会使xsd文件无效也不会影响xml文件的验证。
=============================================== =============
更新2:
将值作为每个选项的值,并将标签作为每个选项的显示文本。当用户选择例如高尔夫的选项2时,生成xml将如下所示:
<car>Golf</car>
因此,这些标签纯粹用于生成UI,与xml无关。
答案 0 :(得分:2)
1。您可以使用<xsd:annotation>。
<xs:annotation>
<xs:appinfo>
<!-- Add arbitrary xml here e.g. -->
<label>Audi</label>
</xs:appinfo>
</xs:annotation>
只需将注释放在元素旁边即可。
2。了解其他人如何将xsd:annotation
用于类似目的。
- how to use annotations on an enumeration上的示例
- 基于xsd xsd-forms
的表单生成工具3. 类似的问题: