好的,这一定很容易,但我找不到合适的解释或如何做的例子......
我想指定我的一个XML元素可以有一些属性,并且元素内容必须是非空白文本。例如,这是有效的:
<person age="30">Bob</person>
但这些结构无效,因为缺少元素文本:
<person age="30"></person>
<person age="30" />
FWIW,我现有的架构(片段),它不强制执行“必需的文本内容”规则,如下所示。我假设我想在这个模型的某个地方添加一个xs:restriction块,但是我无法弄清楚它在哪里。
<xs:element name="person">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="age" type="xs:int" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
答案 0 :(得分:1)
定义一个包含所需内容的类型:
<xs:simpleType name="textType">
<xs:restriction base="xs:string">
<xs:pattern value=".+"/>
</xs:restriction>
</xs:simpleType>
之后,您可以将其用作元素的基本类型:
<xs:element name="person">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="textType">
<xs:attribute name="age" type="xsd:int"></xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>