[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Christopher Loschen" <closchen@s...>
  • To: <xml-dev@l...>
  • Date: Fri, 20 Nov 2009 13:39:11 -0500

Hi Ken,

Thanks very much for your reply!

Yes, we do have the xs prefix mapped.

The SOAP request going out looks like this :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 	<soapenv:Header>
 		<mes:MessageHeader
xmlns:mes="http://csi.xxx.com/CSI/Namespaces/Types/Public/MessageHeader.xsd">
 			<mes:TrackingMessageHeader>
 				<cin:version
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd">v20</cin:version>
 				<cin:messageId
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd">CSI-CES-TEST:1248272571983</cin:messageId>
 				<cin:timeToLive
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd">72000000000</cin:timeToLive>
 				<cin:dateTimeStamp
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd"
xsi:type="xs:dateTime">2009-07-22T14:22:51.983Z</cin:dateTimeStamp>
 			</mes:TrackingMessageHeader>
 			<mes:SecurityMessageHeader>
 				<cin:userName
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd">csitest</cin:userName>
 				<cin:userPassword
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd">testcsi</cin:userPassword>
 			</mes:SecurityMessageHeader>
 			<mes:SequenceMessageHeader>
 				<cin:sequenceNumber
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd">1</cin:sequenceNumber>
 				<cin:totalInSequence
xmlns:cin="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd">1</cin:totalInSequence>
 			</mes:SequenceMessageHeader>
 		</mes:MessageHeader>
 	</soapenv:Header>
 	<soapenv:Body>
 		<ech:EchoRequest
xmlns:ech="http://csi.xxx.com/CSI/Namespaces/Container/Public/EchoRequest.xsd">
 			<ech:data>H E L L O</ech:data>
 		</ech:EchoRequest>
 	</soapenv:Body>
 </soapenv:Envelope>

The response from the server looks like this :

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:m="http://csi.xxx.com/CSI/Namespaces/Types/Public/MessageHeader.xsd"
xmlns:cer="http://csi.xxx.com/CSI/Namespaces/Types/Public/ErrorResponse.xsd">
 	<soap-env:Header>
 		<m:MessageHeader>
 			<TrackingMessageHeader
xmlns="http://csi.xxx.com/CSI/Namespaces/Types/Public/MessageHeader.xsd"
xmlns:cng="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd"
xmlns:soap="http://csi.xxx.com/CSI/Namespaces/JMS/Public/SoapFaultResponse.xsd">
 				<cng:version>v20</cng:version>
 				<cng:messageId>CSI-CES-TEST:1248272571983</cng:messageId>
 				<cng:timeToLive>72000000000</cng:timeToLive>
 			
<cng:conversationId>csitest~CNG-CSI~89ccf9d49d35d1f5:2c53d17b:122997122c9:-6dfd</cng:conversationId>
 				<cng:dateTimeStamp>2009-07-22T14:22:51.983Z</cng:dateTimeStamp>
 			</TrackingMessageHeader>
 			<SecurityMessageHeader
xmlns="http://csi.xxx.com/CSI/Namespaces/Types/Public/MessageHeader.xsd"
xmlns:cng="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd"
xmlns:soap="http://csi.xxx.com/CSI/Namespaces/JMS/Public/SoapFaultResponse.xsd">
 				<cng:userName>csitest</cng:userName>
 				<cng:userPassword>testcsi</cng:userPassword>	
 			</SecurityMessageHeader>
 			<SequenceMessageHeader
xmlns="http://csi.xxx.com/CSI/Namespaces/Types/Public/MessageHeader.xsd"
xmlns:cng="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd"
xmlns:soap="http://csi.xxx.com/CSI/Namespaces/JMS/Public/SoapFaultResponse.xsd">
 				<cng:sequenceNumber>1</cng:sequenceNumber>
 				<cng:totalInSequence>1</cng:totalInSequence>
 			</SequenceMessageHeader>
 		</m:MessageHeader>
 	</soap-env:Header>
 	<soap-env:Body>
 		<soap-env:Fault
xmlns:soap1="http://csi.xxx.com/CSI/Namespaces/Types/Public/SoapFaultDetails.xsd">
 			<faultcode>soap-env:Client</faultcode>
 			<faultstring>Unknown Error</faultstring>
 			<faultactor>soap-env:Client</faultactor>
 			<detail>
 				<soap1:CSIApplicationException>
 					<cer:Response
xmlns="http://csi.xxx.com/CSI/Namespaces/Types/Public/SoapFaultDetails.xsd"
xmlns:cng="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd"
xmlns:ns0="http://csi.xxx.com/CSI/Namespaces/Types/Public/SoapFault.xsd">
 						<cng:code>900</cng:code>
 						<cng:description>Unknown Error</cng:description>
 					</cer:Response>
 					<cer:ServiceProviderEntity
xmlns="http://csi.xxx.com/CSI/Namespaces/Types/Public/SoapFaultDetails.xsd"
xmlns:cng="http://csi.xxx.com/CSI/Namespaces/Types/Public/XXXDataModel.xsd"
xmlns:ns0="http://csi.xxx.com/CSI/Namespaces/Types/Public/SoapFault.xsd">
 						<cer:reportingServiceEntity>GATEWAY</cer:reportingServiceEntity>
 						<cer:faultDate>2009-07-22Z</cer:faultDate>
 						<cer:faultSequenceNumber>1</cer:faultSequenceNumber>
 						<cer:faultLevel>ERROR</cer:faultLevel>
 						<cer:faultCode>90000000001</cer:faultCode>
 						<cer:faultDescription>The method
[com.prft.gateway.common.XmlTransformHelper.transformRequest] raised exception
[java.lang.Exception].  java.lang.Exception: Invalid SOAP Request - Failed
Schema Validation Errors in the Header :
 Invalid xsi:type qname: 'xs:dateTime' in element
TrackingMessageHeader@http://csi.xxx.com/CSI/Namespaces/Types/Public/MessageHeader.xsd</cer:faultDescription>
 						<cer:ServiceProviderRawError>
 							<cer:code/>
 							<cer:description>The method
[com.prft.gateway.common.XmlTransformHelper.transformRequest] raised exception
[java.lang.Exception].  java.lang.Exception: Invalid SOAP Request - Failed
Schema Validation Errors in the Header :
 Invalid xsi:type qname: 'xs:dateTime' in element
TrackingMessageHeader@http://csi.xxx.com/CSI/Namespaces/Types/Public/MessageHeader.xsd</cer:description>
 						</cer:ServiceProviderRawError>
 					</cer:ServiceProviderEntity>
 				</soap1:CSIApplicationException>
 			</detail>
 		</soap-env:Fault>
 	</soap-env:Body>
 </soap-env:Envelope>

Thanks for any pointers or suggestions you might have.

Best,
Chris



Sorry, in my haste I mistyped the prefix ... you will need:

   xmlns:xs="http://www.w3.org/2001/XMLSchema"

... in your document for "xs:dateTime" to be a valid QName representing the
W3C Schema data type.

. . . . . . . . Ken

At 2009-11-20 13:14 -0500, I wrote:
>At 2009-11-20 13:10 -0500, Christopher Loschen wrote:
>>I'm working with a schema that defines a type by restricting the 
>>simple dateTime type. Our mapping rules (based on the JAX-RPC spec) 
>>map this to the class of the parent type (in this case, 
>>java.util.Calendar) rather than creating a new class to represent the 
>>derived type. Consequently, when we generate an XML message we specify 
>>that this element is of xsi:type="xs:dateTime" (that is, the parent type).
>>
>>However, when we do that, the schema validator flags the XML as 
>>invalid: it cites an invalid QName at the xsi:type="xs:dateTime" attribute.
>
>Have you declared xmlns:ns="http://www.w3.org/2001/XMLSchema" in your 
>XML document?
>
>The error message indicates that you have not, as a QName is only valid 
>if the prefix used has a namespace binding in scope.
>
>I hope this helps.
>
>. . . . . . . Ken



____________________________________________________________________
   



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member