Атрибут 'minOccurs' не может присутствовать - PullRequest
2 голосов
/ 17 января 2012

Я нахожусь в процессе создания моей командной строки svcutil для генерации бизнес-объектов из схемы OSEO .

Всякий раз, когда она говорит мне, что тип "xxx" отсутствует, я определяю, чтоXSD мне нужно включить в командную строку и добавить его.Пока что моя командная строка выглядит следующим образом:

svcutil /language:C# /namespace:*,OGC.OSEO.DataContract /out:IOSEO.cs oseo/1.0/oseo.wsdl oseo/1.0/oseo.xsd ows/2.0/owsAll.xsd ows/2.0/ows19115subset.xsd ows/2.0/owsAdditionalParameters.xsd ows/2.0/owsCommon.xsd ows/2.0/owsContents.xsd ows/2.0/owsDataIdentification.xsd ows/2.0/owsExceptionReport.xsd ows/2.0/owsGetCapabilities.xsd ows/2.0/owsGetResourceByID.xsd ows/2.0/owsInputOutputData.xsd ows/2.0/owsManifest.xsd ows/2.0/owsOperationsMetadata.xsd ows/2.0/owsServiceIdentification.xsd ows/2.0/owsServiceProvider.xsd ows/2.0/owsDomainType.xsd http://www.w3.org/2006/03/addressing/ws-addr.xsd sweCommon/2.0/block_components.xsd sweCommon/2.0/advanced_encodings.xsd sweCommon/2.0/basic_types.xsd sweCommon/2.0/choice_components.xsd sweCommon/2.0/record_components.xsd sweCommon/2.0/simple_components.xsd sweCommon/2.0/simple_encodings.xsd sweCommon/2.0/swe.xsd xlink/1.0.0/xlinks.xsd swes/2.0/swes.xsd swes/2.0/swesCommon.xsd swes/2.0/swesContents.xsd swes/2.0/swesDeleteSensor.xsd swes/2.0/swesDescribeSensor.xsd swes/2.0/swesInsertSensor.xsd swes/2.0/swesNotification.xsd swes/2.0/swesUpdateSensorDescription.xsd gml/3.2.1/basicTypes.xsd gml/3.2.1/coordinateOperations.xsd gml/3.2.1/coordinateReferenceSystems.xsd gml/3.2.1/coordinateSystems.xsd gml/3.2.1/coverage.xsd gml/3.2.1/datums.xsd gml/3.2.1/defaultStyle.xsd gml/3.2.1/deprecatedTypes.xsd gml/3.2.1/dictionary.xsd gml/3.2.1/direction.xsd gml/3.2.1/dynamicFeature.xsd gml/3.2.1/feature.xsd gml/3.2.1/geometryAggregates.xsd gml/3.2.1/geometryBasic0d1d.xsd gml/3.2.1/geometryBasic2d.xsd gml/3.2.1/geometryComplexes.xsd gml/3.2.1/geometryPrimitives.xsd gml/3.2.1/gml.xsd gml/3.2.1/gmlBase.xsd gml/3.2.1/grids.xsd gml/3.2.1/measures.xsd gml/3.2.1/observation.xsd gml/3.2.1/referenceSystems.xsd gml/3.2.1/temporal.xsd gml/3.2.1/temporalReferenceSystems.xsd gml/3.2.1/temporalTopology.xsd gml/3.2.1/topology.xsd gml/3.2.1/units.xsd gml/3.2.1/valueObjects.xsd gmd/applicationSchema.xsd gmd/citation.xsd gmd/constraints.xsd gmd/content.xsd gmd/dataQuality.xsd gmd/distribution.xsd gmd/extent.xsd gmd/freeText.xsd gmd/gmd.xsd gmd/identification.xsd gmd/maintenance.xsd gmd/metadataApplication.xsd gmd/metadataEntity.xsd gmd/metadataExtension.xsd gmd/portrayalCatalogue.xsd gmd/referenceSystem.xsd gmd/spatialRepresentation.xsd gco/basicTypes.xsd gco/gcoBase.xsd gts/temporalObjects.xsd gss/geometry.xsd gsr/spatialReferencing.xsd smil20/smil20-animate.xsd smil20/smil20-animate.xsd smil20/smil20-language.xsd

Итак, я нажал на пень в последнем xsd, чтобы добавить в командную строку, который является smil20-языком.xsd

Я получаю следующую ошибку:

Атрибут 'minOccurs' не может присутствовать

Как видно изxsd есть много minOccurs.

Итак, мой вопрос: Какие из них вызывают эти ошибки?Как я могу узнать?

Ошибка во всей ее полноте не дает номер строки, код или какие-либо подсказки.

enter image description here

1 Ответ

7 голосов
/ 20 января 2012

Набор XML-схемы, состоящий из всех файлов, которые можно отследить по предоставленной вами ссылке на схему OSEO, действителен.Инструменты, к сожалению, не в состоянии справиться только с этим одним файлом;что делает весь процесс громоздким, поскольку всего 104 файла ... с очень сложным включением / импортом.

Out of the box OSEO

Я опишу, что мне удалось сделать длязаставить его работать, используя доступный мне инструмент (и с которым я связан).Я не смогу объяснить, почему xsd.exe или svcutil.exe ведут себя так же, как они;наверняка, наиболее интересным может быть их обратный инжиниринг ...

Я импортировал все файлы XSD на свою локальную машину.Я использовал инструмент;сохраняет макет и автоматически переписываетs /Атрибут schemaLocation для обеспечения целостности загрузки.

Я произвел рефакторинг всего набора, чтобы получить его эквивалент, но используя минимально возможное количество файлов XSD.

OSOE refactored minimum set

Используя созданные файлы, я запустил следующую командную строку xsd.exe;класс C # вышел чистым, без ошибок или предупреждений в выводе.

xsd oseo.xsd gco.xsd gmd.xsd gml.xsd  gsr.xsd  gss.xsd gts.xsd ows-1-1.xsd ows-2-0.xsd swe.xsd swes.xsd ws-addr.xsd wsn.xsd xlinks.xsd xml.xsd /c

Попытка того же набора с svcutil не будет работать;он жалуется на то, что схема недействительна ... К сожалению, у меня не было времени изучить.

Полные инструкции по решению и инструментам находятся в zip-файле, доступном по этой ссылке ,Если вы хотите пообщаться вне этой темы, просто отправьте мне письмо по электронной почте через адрес поддержки, размещенный на сайте.Я держал PDF очень маленьким, сосредоточившись на объяснении, как тестировать только.В архиве содержатся загруженные XSD, а также сгенерированные XSD.Надеюсь, это поможет ...

...