2011-02-15 6 views
1

카탈로그 서비스에 대한 OGC CSW 2.0.2 (07-006r1) 표준을 따르는 다음 web service endpoint에 대한 프록시 코드를 생성하는 데 svcutil을 사용하고 있습니다.왜 프록시 코드가 svctuil에 의해 생성되는 이유는 무엇입니까?

entire OGC schema files을 다운로드하여 "D :/temp/OGCSchemas /"디렉토리에 넣었습니다.

내가 관심있는 스키마는 CSW이지만 CSW 스키마는 다른 스키마를 포함하고 가져 오므로 전체 세트를 다운로드 한 것입니다.

제 질문은 : 생성되는 프록시 코드가 왜 그렇게 작습니까? 나는 그것을 사용할 수 없다, 그렇지? 코드 생성이 오류/경고로 중단 되었습니까?

이 내는 svcutil의 excecution입니다 :

C:\Windows\system32>svcutil D:\temp\OGCSchemas\csw\2.0.2\http-binding.wsdl D:\temp\OGCSchemas\csw\2.0.2\xml-interfaces.wsdl D:\tem 
p\OGCSchemas\csw\2.0.2\responses.wsdl D:\temp\OGCSchemas\csw\2.0.2\CSW-discovery.xsd D:\temp\OGCSchemas\csw\2.0.2\CSW-publication. 
xsd D:\temp\OGCSchemas\ows\1.0.0\owsExceptionReport.xsd D:\temp\OGCSchemas\csw\2.0.2\record.xsd D:\temp\OGCSchemas\ows\1.0.0\owsAl 
l.xsd D:\temp\OGCSchemas\filter\1.1.0\filter.xsd D:\temp\OGCSchemas\csw\2.0.2\rec-dcterms.xsd D:\temp\OGCSchemas\csw\2.0.2\rec-dcm 
es.xsd D:\temp\OGCSchemas\ows\1.0.0\owsGetCapabilities.xsd D:\temp\OGCSchemas\filter\1.1.0\expr.xsd D:\temp\OGCSchemas\filter\1.1. 
0\sort.xsd D:\temp\OGCSchemas\filter\1.1.0\filterCapabilities.xsd D:\temp\OGCSchemas\gml\3.1.1\base\geometryAggregates.xsd D:\temp 
\OGCSchemas\ows\1.0.0\owsServiceIdentification.xsd D:\temp\OGCSchemas\ows\1.0.0\owsServiceProvider.xsd D:\temp\OGCSchemas\ows\1.0. 
0\owsOperationsMetadata.xsd D:\temp\OGCSchemas\gml\3.1.1\base\geometryPrimitives.xsd D:\temp\OGCSchemas\ows\1.0.0\owsDataIdentific 
ation.xsd D:\temp\OGCSchemas\ows\1.0.0\ows19115subset.xsd D:\temp\OGCSchemas\ows\1.0.0\owsCommon.xsd D:\temp\OGCSchemas\gml\3.1.1\ 
base\geometryBasic2d.xsd D:\temp\OGCSchemas\gml\3.1.1\base\geometryBasic0d1d.xsd D:\temp\OGCSchemas\gml\3.1.1\base\measures.xsd D: 
\temp\OGCSchemas\gml\3.1.1\base\units.xsd D:\temp\OGCSchemas\gml\3.1.1\base\dictionary.xsd D:\temp\OGCSchemas\gml\3.1.1\base\gmlBa 
se.xsd D:\temp\OGCSchemas\gml\3.1.1\base\basicTypes.xsd D:\temp\OGCSchemas\xlink\1.0.0\xlinks.xsd /out:D:\temp\ogc.csw.proxy.cs 
Microsoft (R) Service Model Metadata Tool 
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.1] 
Copyright (c) Microsoft Corporation. All rights reserved. 

Error: Cannot import wsdl:binding 
Detail: The required WSDL extension element 'binding' from namespace 'http://schemas.xmlsoap.org/wsdl/http/' was not handled. 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://www.opengis.net/cat/csw/2.0.2/http']/wsdl:binding[@name='csw-PO 
ST'] 


Generating files... 
D:\temp\ogc.csw.proxy.cs 

그리고 이것은이 생성 년대 ogc.csw.proxy.cs 프록시 파일입니다.

[assembly: System.Runtime.Serialization.ContractNamespaceAttribute("http://www.opengis.net/ows", ClrNamespace="www.opengis.net.ows")] 

namespace www.opengis.net.ows 
{ 
    [System.Diagnostics.DebuggerStepThroughAttribute()] 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 
    [System.Xml.Serialization.XmlSchemaProviderAttribute("ExportSchema")] 
    [System.Xml.Serialization.XmlRootAttribute(IsNullable=false)] 
    public partial class ExceptionReport : object, System.Xml.Serialization.IXmlSerializable 
    { 

     private System.Xml.XmlNode[] nodesField; 

     private static System.Xml.XmlQualifiedName typeName = new System.Xml.XmlQualifiedName("ExceptionReport", "http://www.opengis.net/ows"); 

     public System.Xml.XmlNode[] Nodes 
     { 
      get 
      { 
       return this.nodesField; 
      } 
      set 
      { 
       this.nodesField = value; 
      } 
     } 

     public void ReadXml(System.Xml.XmlReader reader) 
     { 
      this.nodesField = System.Runtime.Serialization.XmlSerializableServices.ReadNodes(reader); 
     } 

     public void WriteXml(System.Xml.XmlWriter writer) 
     { 
      System.Runtime.Serialization.XmlSerializableServices.WriteNodes(writer, this.Nodes); 
     } 

     public System.Xml.Schema.XmlSchema GetSchema() 
     { 
      return null; 
     } 

     public static System.Xml.XmlQualifiedName ExportSchema(System.Xml.Schema.XmlSchemaSet schemas) 
     { 
      System.Runtime.Serialization.XmlSerializableServices.AddDefaultSchema(schemas, typeName); 
      return typeName; 
     } 
    } 
} 

편집 # 1 (아주 작은) Yaron Naveh's blog을 읽은 후 나는 좋아하지 않는다는 svcutil 실현이 HTTP 바인딩 (내가 그것을 지정된 OGC가 가지고있는 방법을 생각한다). 그래서 soap-binding.wsdl에 대한 http-binding.wsdl을 바꿨고 모든 것이 오류없이 작동하고 거대한 프록시 파일이 예상대로 생성됩니다.

+0

XSD 중 하나에 오류가있는 것 같습니다. –

+0

@S M : 어느 것을 결정할 수 있는지 아십니까? – capdragon

+0

'오류에 대한 XPath 소스 : //wsdl:definitions[@targetNamespace='http://www.opengis.net/cat/csw/2.0.2/http']/wsdl:binding[@name='csw-POST ']' –

답변

0

나는 동일한 문제가있었습니다. 내 WSDL에는 XSD 가져 오기가없고 Http, Soap11 및 Soap12의 3 가지 바인딩이 있습니다. HttpBinding을 제거하면 문제가 해결됩니다.

또한 XmlSerialized를 사용하면 도움이되지 않았습니다.