我在XSD中指定什么来跳过xml标记的属性验证

时间:2009-12-16 21:36:31

标签: xml validation xsd

我的xml文件是如下所示的结构

<outer> 
  <inner name="nam" attribute1="abc" attribute2="def" />
</outer>

现在,'inner'标签中我唯一确定的属性是'name'属性。除此之外,我不想对'内部'标签可以具有的属性名称或数量施加任何限制。这意味着我的xml文件也可能看起来像

 <outer> 
      <inner name="nam2" wallace="abc" gromit="def" wererabbit="what" />
 </outer>

但我仍然希望能够使用XSD验证我的XML文件。这里是我尝试在xsd中定义的complexType来完成这项工作。但验证失败,因为显然验证器期望在xsd中指定每个属性,我不能这样做,因为属性可以是任何东西,并且不是事先决定的。

<xs:complexType name="innerType">
 <xs:attribute name="name" type="xs:string"/>
</xs:complexType>

我想知道XSD中是否有某些内容(可能是省略号?),这可以让我指定/忽略可变数量的属性并成功验证XML。

谢谢,

Rohan

1 个答案:

答案 0 :(得分:1)

民间,

这是我的问题的有效XSD。感谢Mark。我向马克道歉。我试图让任何属性在今晚全部工作,但由于某种原因,它直到我尝试下面的方式才开始工作。如果你可以请重新发布你的答案,我会继续把它作为正确答案投票。

<xs:complexType name="innerType">
 <xs:attribute name="name" type="xs:string" use="required"/>
 <xs:anyAttribute processContents="skip"/>
</xs:complexType>

谢谢, 罗汉