Используя svcutil, я пытаюсь создать прокси-класс для конечной точки веб-службы , которая соответствует стандарту OGC CSW 2.0.2 (07-006r1) для служб каталогов.
Я скачал файлы всей схемы OGC и поместил их в мой каталог "D: / temp / OGCSchemas /".
Меня интересует схема CSW, однако схема CSW включает и импортирует другие схемы, поэтому я скачал весь набор.
Например, вы увидите что-то вроде этого:
<wsdl:import namespace="http://www.opengis.net/cat/csw/2.0.2/requests" location="./xml-interfaces.wsdl"/>
<xsd:schema targetNamespace="http://www.opengis.net/cat/csw/2.0.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="2.0.2">
<xsd:include schemaLocation="../../csw/2.0.2/CSW-discovery.xsd"/>
<xsd:include schemaLocation="../../csw/2.0.2/CSW-publication.xsd"/>
</xsd:schema>
Моя командная строка до сих пор выглядит так:
svcutil D:\temp\OGCSchemas\csw\2.0.2\examples\wsdl\2.0.2\*.wsdl D:\temp\OGCSchemas\csw\2.0.2\*.xsd D:\temp\OGCSchemas\filter\1.1.0\*.xsd D:\temp\OGCSchemas\ows\1.0.0\*.xsd /out:D:\temp\ogc.csw.proxy.cs
Но я получаю много ошибок, которые выглядят так:
Error: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://www.opengis.net/cat/csw/2.0.2/soap']/wsdl:binding[@name='csw-SO
AP']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://www.opengis.net/cat/csw/2.0.2/wsdl']/wsdl:service[@name='CSW']/
wsdl:port[@name='csw-SOAP-Port']
Я полагаю, что эта ошибка говорит мне включить больше xsds в мою командную строку.
Итак, мой вопрос: Как мне определить, какие xsds включить в мою командную строку?
Я думал, что включил * .xsd для каждого каталога, из которого он включался, но, очевидно, нет.
РЕДАКТИРОВАТЬ # 1
Каковы правила при включении файлов xsd? Должны ли быть добавлены все файлы, которые импортированы или включены? С такой большой схемой, я думаю, мне нужно будет создать инструмент, чтобы найти их все.