如何使用XML模式要求元素包含字符数据
如果我有一个xml文档,例如:如何使用XML模式要求元素包含字符数据,xml,xsd,Xml,Xsd,如果我有一个xml文档,例如: <colors> <color1>1452</color1> <color2></color2> <color3></color3> </colors> 1452 我想在XML模式中定义color1元素必须包含int类型的值、非null和非空。所以上面的例子是有效的,但是如果color1像color2和color3一样是空的
<colors>
<color1>1452</color1>
<color2></color2>
<color3></color3>
</colors>
1452
我想在XML模式中定义color1元素必须包含int类型的值、非null和非空。所以上面的例子是有效的,但是如果color1像color2和color3一样是空的,它就会失败。我已经到处搜索过了,但似乎找不到一种干净的方法来要求用值填充元素。我是否遗漏了一些非常明显的内容?以下是您如何进行类型检查:
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>
因此,在您的情况下,您需要type=“xs:integer”
实际上可以执行的不同限制非常广泛,例如正则表达式和最小和最大整数值。更多信息
编辑:这是有关您可能希望指定的不同数值类型的更多信息,而不仅仅是整数 下面是如何进行类型检查:
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>
因此,在您的情况下,您需要type=“xs:integer”
实际上可以执行的不同限制非常广泛,例如正则表达式和最小和最大整数值。更多信息
编辑:这是有关您可能希望指定的不同数值类型的更多信息,而不仅仅是整数 对于属性,架构应具有:
<... use="required" type="..."/>
对于元素:
<xs:element minOccurs="1"/>
对于属性,架构应具有:
<... use="required" type="..."/>
对于元素:
<xs:element minOccurs="1"/>
您需要在模式中定义元素的类型,如下所示:
<xs:element name="color" type="xs:integer"/>
请注意,我使用了一个字符串来表示类型。首先,我不确定是否可以将
minLength
与整数一起使用,但可以将正则表达式与xs:pattern
一起使用。您需要在模式中定义元素的类型,如下所示:
<xs:element name="color" type="xs:integer"/>
请注意,我使用了一个字符串来表示类型。首先,我不确定是否可以将
minLength
与整数一起使用,但可以将正则表达式与xs:pattern
一起使用。不幸的是,minOccurs只要求元素本身出现在xml中,它不会检查元素是否包含任何数据。不幸的是,minOccurs只要求元素本身出现在xml中,它不检查元素是否包含任何数据。为了对它进行管理,我向它提供了正则表达式[0-9]{3,5},以强制它只允许3-5个数字的范围。我将用更全面的方法更新答案。这样做可以管理它,我给它输入正则表达式[0-9]{3,5},强制它只允许3-5个数字的范围。我会用更全面的内容更新答案。也谢谢你的建议。也谢谢你的建议。