2011-02-15 60 views
1

我使用SvcUtil工具生成以下web service endpoint隨後的目錄服務OGC CSW 2.0.2 (07-006r1)標準代理代碼。爲什麼svctuil生成的代理代碼如此之小?

我已經下載了entire OGC schema files,把它們變成我的 「d:/溫度/ 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; 
     } 
    } 
} 

EDIT#1 讀取Yaron Naveh's blog i之後實現SvcUtil工具不喜歡此http結合(我想它指定的OGC具有的方式)。因此,我替換了soap-binding.wsdl的http-binding.wsdl,並且所有工作都沒有錯誤,並且按預期生成了一個巨大的代理文件。

+0

看來你的一個XSD有錯誤。 – 2011-02-15 16:27:42

回答

0

我有同樣的問題。我的WSDL不包含XSD導入,並且有3個綁定:Http,Soap11和Soap12。刪除HttpBinding解決了這個問題。

的方法,另外,使用XmlSerialized沒有幫助。