我有这个XML文件(其中一些是巨大的 - 数千个元素),我试图使用XSD模式验证此XML文件的某些元素。例如。日期等。现在,问题是XSD不会让我验证文档的某些部分。它想要一切的定义 - 这将是非常痛苦的。我想知道的是,有没有办法让XSD只使用文档的某些元素?我已经尝试过任何和anyAttribute无济于事。如果不是,你会如何做到这一点?是否有一个库/脚本生成与XML文档相对应的模式,然后根据我的需要进行修改?验证XML文档的一个子集或仅某些元素?
感谢,
我有这个XML文件(其中一些是巨大的 - 数千个元素),我试图使用XSD模式验证此XML文件的某些元素。例如。日期等。现在,问题是XSD不会让我验证文档的某些部分。它想要一切的定义 - 这将是非常痛苦的。我想知道的是,有没有办法让XSD只使用文档的某些元素?我已经尝试过任何和anyAttribute无济于事。如果不是,你会如何做到这一点?是否有一个库/脚本生成与XML文档相对应的模式,然后根据我的需要进行修改?验证XML文档的一个子集或仅某些元素?
感谢,
你也有<xs:element name="aName"/>
它匹配的乌尔型,所以任何类型。
一个典型的部分验证是:
<xs:schema>
<xs:element name="theRootElement">
<xs:complexType>
<xs:sequence>
<!- some wildcard wich match the beginning of the document until the desired element -->
<xs:any processContent="skip" namespace="somethingOrAll"/>
<xs:element name="theDesiredElementToMatch">
<!-- the matching test -->
</xs:element>
<!-- the rest of the doc -->
<xs:any processContent="skip" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但它并不适用于所有的模式工作,这是非常乏味的。
复制你关心到文档片段的DOM和运行验证对那些碎片。当然,假设你正在用API编写一些语言来完成这一切。
你是指XSD想要定义所有东西的含义?你怎么知道的?你在说什么“XSD”? “XSD”对“想要定义”意味着什么? – 2010-12-22 00:44:04
您可能想要显示您用于验证的代码。如何完成这个任务可能取决于你使用的工具 - 通常它会。 – 2010-12-22 00:51:59