Xml XSD1.0中的属性可以为零吗?

Xml XSD1.0中的属性可以为零吗?,xml,xsd,xsd-validation,xml-validation,xsd-1.0,Xml,Xsd,Xsd Validation,Xml Validation,Xsd 1.0,我有这样一种情况:1)属性不是必需的,2)使用时可以采用。I)null或空,或者。ii)将使用正则表达式验证(我希望)的版本字符串 关于2.i,如何创建可为零的属性?在我使用xml&xsd的短暂时间里,我还没有看到这一点 编辑:添加我所说的示例,其中“属性_1”对应于我的情况 <xsd:element attribute_1="x" attribute_2="y" /> <!-- or --> <xsd:element attribute_2="y" /> &

我有这样一种情况:1)属性不是必需的,2)使用时可以采用。I)null或空,或者。ii)将使用正则表达式验证(我希望)的版本字符串

关于2.i,如何创建可为零的属性?在我使用xml&xsd的短暂时间里,我还没有看到这一点

编辑:添加我所说的示例,其中“属性_1”对应于我的情况

<xsd:element attribute_1="x" attribute_2="y" />
<!-- or -->
<xsd:element attribute_2="y" />
<!-- or -->
<xsd:element attribute_1="" attribute_2="y" />

您需要为元素创建一个复杂类型,并将属性声明为“可选”,如下所示:

<xs:element name="tElementType">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="myelement" type="xs:string"/>           
    </xs:sequence>
    <xs:attribute name="myattribute" type="xs:string" use="optional"/>
  </xs:complexType>
</xs:element>-
<xs:element name="thisIsMyRealElement" type="tElementType" />

-


希望有帮助;)

在XSD中,“nillable”是一个仅适用于元素的技术术语;nillability允许其类型要求其内容有效的元素即使为空。所以对你提出的问题的答案是“不,属性不能为零”

另一方面,您描述的是一个可以不指定的属性(可以通过属性声明中的
use=“optional”
实现),并且允许空字符串作为有效值(它已经是xs:string的属性)。因此,对于“当使用空字符串指定属性时,我是否可以使其成为可省略且有效的属性”这一问题的答案是“是”


由于“”是xs:string的合法值,因此既不需要
minLength=“0”
也不需要指定模式;如果您有一个验证器拒绝输入为xs:string的属性的空字符串,那么您的验证器已损坏。

Ah,但是传递空值与是否存在属性是不同的。use=“optional”是必需的,但还不够。我做了一些阅读,发现如下:出于某种原因使用minLength=“0”不起作用,但使用允许值x或null。在模式和使用之间,我能够验证:D不过谢谢你的回答。