如何使用XML模式要求元素包含字符数据

如何使用XML模式要求元素包含字符数据,xml,xsd,Xml,Xsd,如果我有一个xml文档,例如: <colors> <color1>1452</color1> <color2></color2> <color3></color3> </colors> 1452 我想在XML模式中定义color1元素必须包含int类型的值、非null和非空。所以上面的例子是有效的,但是如果color1像color2和color3一样是空的

如果我有一个xml文档,例如:

<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个数字的范围。我会用更全面的内容更新答案。也谢谢你的建议。也谢谢你的建议。