Namespace prefix in XSD

T

Tanja Schaettler

Hello!

I have an existing SOAP message which looks like:

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<xsi:MaintainCTOBomResponse
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xsi:type="xsd:string">...

and I need to define an XSD for it.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsi:schema targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<xsd:element name="Envelope">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Body" form="qualified">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MaintainCTOBomResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="return">
<xsd:complexType>
<xsd:sequence>
...
<xsd:attribute name="type"/>

When I validate the XML with XML Spy it says: "Mandatory element
'MaintainCTOBomResponse' expected in place of 'xsi:MaintainCTOBomResponse'".

I cannot change the XML, how can I add the namespace prefix in the XSD
so that the xsi:MaintainCTOBomResponse element and the return xsi:type
attribute can successfully be validated? Thanks for your help.


Regards, Tanja
 
G

Gerben Abbink

Hi,

It is not possible to define more than one namespace within a single xml
schema. However, it is possible to reuse an xml schema with a different
namespace by importing it:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:prefix="---namespace-of-MaintainCTOBomResponse---">
<xsd:import namespace="---namespace-of-MaintainCTOBomResponse---"
schemaLocation="---schema-with-MaintainCTOBomResponse---.xsd"/>
<xsd:element name="Envelope">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Body" form="qualified">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="prefix:MaintainCTOBomResponse"/>

Gerben Abbink
www.xmlblueprint.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,708
Latest member
SherleneF1

Latest Threads

Top