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

标签 xml validation xsd

我的xml文件结构如下

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

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

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

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

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

我想知道 XSD 中是否有某些东西(也许像省略号?)可以让我指定/忽略可变数量的属性并成功验证 XML。

谢谢,

罗汉

最佳答案

各位,

这是针对我的问题的有效 XSD。感谢马克。我向马克道歉。整个晚上我都试图让 anyAttribute 正常工作,但由于某种原因,直到我按照下面的方式尝试它,它才奏效。如果您可以重新发布您的答案,我会继续并将其投票为正确答案。

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

谢谢, 罗汉

关于xml - 我在我的 XSD 中指定什么来跳过 xml 标记的属性验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1917917/

相关文章:

grails - Groovy下的Acegi用户类约束

xml - 在XSD中,是否可以通过变量定义maxOccurs的值?

android.view.InflateException : Binary XML file line #12: Error inflating class <unknown>

java - 如何使 ListView 可点击

validation - Grails Validateable 实现缺少方法

java - Websphere 8.5 java.lang.NumberFormatException : WSWS3435E: Error: Invalid date/time. 收到日期/时间值的空字符串

c# - 如何在 C# 中使用 xsd?

asp.net - 检测到潜在危险的 Request.Form 值

xml - 使用 XPath 选择匹配兄弟的前一个兄弟?

java - Hibernate Validator - 添加动态 ConstraintValidator