Java 如何使用名称空间根据xsd验证xml文件
我想用xsd文件验证包含名称空间的xml文件 我的xml文件:Java 如何使用名称空间根据xsd验证xml文件,java,xml,validation,xsd,Java,Xml,Validation,Xsd,我想用xsd文件验证包含名称空间的xml文件 我的xml文件: <?xml version="1.0" encoding="UTF-8"?> <ArrayOfNumberOfCars xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"> <NumberOfCars
<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfNumberOfCars xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars">
<NumberOfCars>
<Number>417</Number>
</NumberOfCars>
</ArrayOfNumberOfCars>
每个人都知道如何在xsd文件中为名称页配置验证。请帮帮我
谢谢您没有显示模式的关键部分,其中定义了targetNamespace 如果模式中的targetNamespace与实例文档中的targetNamespace匹配,那么应该没有问题,并且不需要做任何特殊的操作
如果它们不匹配,则您的实例文档无效,使其有效的唯一方法是将其转换为正确名称空间中的不同文档(或者如果模式定义了名称空间,则不转换为名称空间)。您没有显示模式的关键部分,其中定义了targetNamespace 如果模式中的targetNamespace与实例文档中的targetNamespace匹配,那么应该没有问题,并且不需要做任何特殊的操作
如果它们不匹配,则您的实例文档无效,使其有效的唯一方法是将其转换为正确名称空间中的不同文档(或者如果模式定义了名称空间,则不转换为名称空间)。您没有显示模式的关键部分,其中定义了targetNamespace 如果模式中的targetNamespace与实例文档中的targetNamespace匹配,那么应该没有问题,并且不需要做任何特殊的操作
如果它们不匹配,则您的实例文档无效,使其有效的唯一方法是将其转换为正确名称空间中的不同文档(或者如果模式定义了名称空间,则不转换为名称空间)。您没有显示模式的关键部分,其中定义了targetNamespace 如果模式中的targetNamespace与实例文档中的targetNamespace匹配,那么应该没有问题,并且不需要做任何特殊的操作
如果它们不匹配,则您的实例文档无效,使其有效的唯一方法是将其转换为正确名称空间中的不同文档(或者不转换为名称空间,如果模式定义了名称空间)。正确的xsd是这样的
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:prefix="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ArrayOfNumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:NumberOfCars" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:Number" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Number">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
<xsd:maxLength value="15" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>
通过这种方式,xsd验证工作正确的xsd是这样的
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:prefix="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ArrayOfNumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:NumberOfCars" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:Number" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Number">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
<xsd:maxLength value="15" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>
通过这种方式,xsd验证工作正确的xsd是这样的
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:prefix="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ArrayOfNumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:NumberOfCars" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:Number" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Number">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
<xsd:maxLength value="15" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>
通过这种方式,xsd验证工作正确的xsd是这样的
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:prefix="http://schemas.datacontract.org/2004/07/Api.CarWEB.Services.Cars"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ArrayOfNumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:NumberOfCars" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NumberOfCars">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="prefix:Number" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Number">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
<xsd:maxLength value="15" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>
通过这种方式,xsd验证工作还有一点:错误消息引用的元素“ArrayOfCar”既不出现在实例文档中,也不出现在模式中。可能这只是准备问题时的一个输入错误?还有一点:错误消息引用了一个元素“ArrayOfCar”,它既没有出现在实例文档中,也没有出现在模式中。可能这只是准备问题时的一个输入错误?还有一点:错误消息引用了一个元素“ArrayOfCar”,它既没有出现在实例文档中,也没有出现在模式中。可能这只是准备问题时的一个输入错误?还有一点:错误消息引用了一个元素“ArrayOfCar”,它既没有出现在实例文档中,也没有出现在模式中。想必这只是你准备问题时的一个输入错误?