2009-05-14 6 views
2

작성한 ColdFusion 웹 서비스에 문제점이 있습니다. 이 서비스는 Base64로 인코딩 된 XML 데이터를 받아 들인 다음 아카이브 목적으로 디스크에 씁니다. 이 파일은 기본 스키마 검사를 거쳐 다음과 같이 오류가 사용자에게 다시보고됩니다ColdFusion 웹 서비스의 SOAP 응답 구조

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soapenv:Body> 
     <UploadXMLResponse xmlns="http://url"> 
      <UploadXMLReturn> 
       <AuthMessage>Authentication successful</AuthMessage> 
       <AuthStatus>Success</AuthStatus> 
       <FileInfo>File Example.xml was successfully uploaded</FileInfo> 
       <UploadStatus>Success</UploadStatus> 
       <xmlValErrors> 
        <xmlValErrors xsi:type="xsd:string">1824</xmlValErrors> 
        <xmlValErrors xsi:type="xsd:string">Error Message</xmlValErrors> 
        <xmlValErrors xsi:type="xsd:string">23</xmlValErrors> 
        <xmlValErrors xsi:type="xsd:string">1824</xmlValErrors> 
        <xmlValErrors xsi:type="xsd:string">Error Message</xmlValErrors> 
        <xmlValErrors xsi:type="xsd:string">38</xmlValErrors> 
       </xmlValErrors> 
       <xmlValMessage>Schema validation generated errors</xmlValMessage> 
       <xmlValStatus>Failure</xmlValStatus> 
      </UploadXMLReturn> 
     </UploadXMLResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

문제는 <xmlValErrors> 요소가 약간 이상한 방식으로 중첩되어 있다는 점이다. 이는 ColdFusion에서 오류 배열을 처리하는 방식 때문입니다. 결과는 사용자가 응답을 분석하려고 할 때 초기 <xmlValErrors> 요소 만 볼 수 있다는 것입니다.

. 여기에는 특히 많은 다른 요소가 포함되어 있더라도 <xmlValErrors> 요소가 빈 배열로 간주되므로 특히 문제가있는 것으로 보입니다.

<xmlValErrors> 요소 내의 하위 요소에 이름을 다시 사용하면 문제가있는 것으로 생각됩니다. 그러나 ColdFusion에서이 문제를 해결할 방법을 찾지 못했습니다.

어떻게 해결 될지 생각해 주시면 감사하겠습니다.

답변

2

xmlValErrors에 액세스하는 방법은 무엇입니까? 오류의 배열에, 두 번째

uploadxmlreturn.xmlvarerrors.xmlvarerrors

부모의 첫 번째 xmlvarerrors 포인트

: 오류의 배열이 부모 xmlVarErrors 내부에 있기 때문에, 당신과 같이 액세스 할.

의미가 있습니까?

1

XML이나 SOAP 어느 쪽도 적합하지 않지만 xmlValErrors의 하위 요소도 "xmlValErrors"라고해서는 안됩니다. 그들 각각이 "xmlValError"가되기를 원하지 않습니까?

+0

알, 정확히 내 문제입니다. Coldfusion이 출력을 구조화하는 방식을 다루는 관점에서 누군가 대답 할 수 있기를 희망합니다. 또는 .Net이 자식 요소를 볼 수 있도록 해주는 솔루션을 제공합니다. –