我有一个xml
文件,基本上是文章的数据。我想写一个xml schema
来验证该文件。在xml文章的文件中,我在文本中间使用了一些标记,例如:
<p>The dog is <em>brown</em><p>
我在其他地方的其他类型的元素中使用了em
标记,因此问题不仅仅是允许它在p
内。
我的问题:如何允许在我的架构的任何元素中使用它?我的研究给了我这些话题:
How to allow an XML element to appear anywhere via XSD?
XSD: Allow elements from different namespace anywhere in a sequence
我并不真正了解这些答案(我是初学者),但似乎openContent
可能是我正在寻找的解决方案。
最小工作示例:
<?xml version="1.0"?>
<doc>
<foo>text <bar /> anything</foo>
<tag>text <bar /> </tag>
</doc>
架构:
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="subclass">
<xs:complexType>
<xs:sequence>
<xs:element name="foo">
</xs:element>
<xs:element name="tag">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我的真实文档涉及一些嵌套的sequence
和choice
,我创建的其他文档会有所不同,所以我正在寻找一个通用的解决方案。
可选问题:如果解决方案不涉及openContent
,有人可以解释一下它是如何工作的吗?搜索结果奇怪地缺乏示例和解释(对于初学者),不像我查找的所有内容。