我尝试将.XSD文件写入下面显示的包含 2 个命名空间的 xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<ns1:Envelope
xmlns:ns1="http://www.webserviceX.NET/ConversionRate/Input" >
<ns1:Body>
<ns2:ConversionRate
xmlns:ns2="http://www.webserviceX.NET">
<ns2:FromCurrency>USD</ns2:FromCurrency>
<ns2:ToCurrency>USD</ns2:ToCurrency>
</ns2:ConversionRate>
</ns1:Body>
</ns1:Envelope>
我写了两个xml方案来定义这个xml文件
第一个(信封.xsd)
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns1="http://www.webserviceX.NET/ConversionRate/Input"
xmlns:ns2="http://www.webserviceX.NET/"
targetNamespace="http://www.webserviceX.NET/ConversionRate/Input">
<xs:import namespace="http://www.webserviceX.NET/"
schemaLocation="C:\Documents and Settings\RoGulk\Desktop\SPM\ConversionRate.xsd"/>
<xs:element name="Body">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns2:ConversionRate"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:Body"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
ConversionRate.xsd(内部 XSD)看起来像这样
<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.webserviceX.NET/"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="ConversionRate">
<xs:complexType>
<xs:sequence>
<xs:element name="FromCurrency" type="xs:string"/>
<xs:element name="ToCurrency" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但问题是我无法针对这些方案定义验证上面的 xml。
有没有人知道问题是什么?谢谢!!!