Xml XSD如何验证<;任何>;使用模式?

Xml XSD如何验证<;任何>;使用模式?,xml,validation,xsd,any,Xml,Validation,Xsd,Any,如果我使用,那么如何为它提供模式 message.xsd: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="messageNS" elementFormDefault="qualified"> <xs:element name="message"&g

如果我使用
,那么如何为它提供模式

message.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="messageNS"
           elementFormDefault="qualified">

<xs:element name="message">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="sender" type="xs:string"/>
      <xs:element name="content">
        <xs:complexType>
          <xs:sequence>
            <xs:any processContents="strict"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>

content.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="contentNS"
           elementFormDefault="qualified">

<xs:element name="text" type="xs:string" />

</xs:schema>

message.xml:

<?xml version="1.0"?>
<message xmlns="messageNS"
         xmlns:c="contentNS"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="messageNS message.xsd
                             contentNS content.xsd">     
    <sender>gfdgf</sender>
    <content>
        <c:text>asdsad</c:text>
    </content>
</message>

gfdgf
asdsad
如果尝试验证message.xml,则会出现以下错误:

cvc复杂类型.2.4.c:匹配的通配符是严格的,但找不到元素“c:text”的声明


我正在使用标准Java验证器:javax.xml.validation.validator

创建一个
模式
,它是所有可能的模式源的集合:

SchemaFactory f;
Source messageSource = // your message.xsd;
Source contentSource = // your content.xsd;
Schema schema = f.newSchema(messageSource, contentSurce);
Validator v = schema.newValidator();

然后像往常一样使用
验证器。

您所拥有的看起来是正确的。我怀疑您可能存在与
无关的XSD位置问题。您确定在日志中没有发现XSD文件的早期警告吗?