использование xsd.exe для генерации файлов c #, получение ошибок и предупреждений - PullRequest
19 голосов
/ 20 декабря 2010

Это команда, которую я запускаю:

xsd.exe -c -l:c# D:\Documents\DEV\SARPilot\Docs\schemas\06-141r2\06-141r2.xsd

Вот ошибки, которые я получаю:

Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Schema validation warning: Undefined complexType 'http://www.opengis.net/sps/0:ParameterDescriptorType' is used as a base for comp
lex type extension. Line 617, position 2.
Schema validation warning: Undefined complexType 'http://www.opengis.net/ows:GetCapabilitiesType' is used as a base for complex ty
pe extension. Line 23, position 2.
Schema validation warning: Undefined complexType 'http://www.opengis.net/ows:CapabilitiesBaseType' is used as a base for complex t
ype extension. Line 35, position 2.
Schema validation warning: The 'http://www.opengis.net/gml:Point' element is not declared. Line 869, position 2.
Schema validation warning: The 'http://www.opengis.net/gml:Polygon' element is not declared. Line 870, position 2.
Schema validation warning: The 'http://www.opengis.net/gml:Rectangle' element is not declared. Line 871, position 2.
Schema validation warning: The 'http://www.opengis.net/sps/0:Parameter' element is not declared. Line 381, position 2.
Schema validation warning: The 'http://www.opengis.net/sps/0:ID' element is not declared. Line 451, position 2.

Warning: Schema could not be validated. Class generation may fail or may produce incorrect results.

Error: Error generating classes for schema 'D:\Documents\DEV\SARPilot\Docs\schemas\06-141r2\06-141r2'.
  - The datatype 'http://www.opengis.net/ows:GetCapabilitiesType' is missing.

If you would like more help, please type "xsd /?".

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin>

Файл XSD был скопирован / вставлен из Приложения A вследующий документ: http://services.eoportal.org/portal/documents/06-141r2_Ordering_Services_for_Earth_Observation_Products_0.9.2.pdf

Ответы [ 2 ]

27 голосов
/ 09 мая 2012

У меня была такая же проблема, и вот как я ее решил:

1) Скопировал все файлы xsd, указанные в xsd, предназначенные для генерации кода, в одно и то же место, т. Е. "C: \ Projects \ Project1 \ Documents \ xsds \ strucutre". 2) Упомянул все упомянутые xsd файлы при выполнении xsd.exe:

C: \ Projects \ Project1 \ Documents \ xsds \ strucutre> "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ xsd" structure.xsd RefXsd1.xsd RefXsd2.xsd RefXsd3.xsd / c / o: C: \ Projects \ Project1 \ Documents \ ClassStructure

Файл c-sharp, содержащий сущности, упомянутые в xsds, был создан в папке C: \ Projects \ Project1 \ Documents \ ClassStructure.

Надеюсь, это поможет!

24 голосов
/ 20 декабря 2010

XML-схема, включенная в документ PDF, который вы связали, содержит ссылки на несколько других файлов XSD с использованием элемента <import>. Вам нужно будет загрузить эти дополнительные файлы схемы и убедиться, что ссылки на пути в элементах <import> указывают на правильные расположения на локальном компьютере.

Если вы все еще получаете ошибки, это связано с тем, что xsd.exe не смог обработать внешние ссылки. Чтобы решить эту проблему, укажите все необходимые файлы XSD непосредственно в командной строке следующим образом:

xsd.exe /c MySchema.xsd Import01.xsd Import02.xsd Include01.xsd Include02.xsd

, где Import01.xsd, Import02.xsd, Include01.xsd и Include02.xsd являются файлами XSD, на которые ссылается импорт, и включают элементы в MySchema.xsd.

...