'minOccurs'属性不能出现

cap*_*gon 2 xml xsd svcutil.exe

我正在构建我的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
Run Code Online (Sandbox Code Playgroud)

所以我在最新的xsd上点了一个树桩来添加smil20-language.xsd这个命令行

我收到以下错误:

'minOccurs'属性不能出现

从xsd可以看出,有很多'minOccurs'.

所以我的问题是:哪些是导致这些错误的?我怎么知道的?

它的整体错误不会给出行号,代码或任何提示.

在此输入图像描述

Pet*_*dea 7

由可以从您提供的OSEO模式链接跟踪的所有文件组成的XML模式集是有效的.遗憾的是,这些工具似乎无法处理那个文件; 这使得整个过程变得繁琐,因为总共有104个文件......包含/导入非常复杂.

开箱即用的OSEO

我将使用我可用的工具(以及与之相关的工具)描述我能够做到的工作.我将无法解释为什么xsd.exe或svcutil.exe的行为与他们的行为方式相同; 当然,最有趣的可能是对它们进行逆向工程......

我已在本地计算机上导入了所有XSD文件.我用过这个工具; 它保留了布局,并自动重写<xsd:include /> s/<xsd:import />的schemaLocation属性,以保持下载的完整性.

我重构了整个集合,以便获得等效的,但使用尽可能少的XSD文件.

OSOE重构了最小集合

使用生成的文件,我运行了以下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
Run Code Online (Sandbox Code Playgroud)

使用svcutil尝试相同的设置将不起作用; 它抱怨架构无效......不幸的是,我没有时间去研究.

整个解决方案和工具特定说明都在此链接的zip中.如果你想在这个主题之外聊天,只需通过网站上发布的支持地址给我发送电子邮件.我保持PDF非常小,专注于解释如何只测试.该zip包含下载的XSD以及生成的XSD.希望能帮助到你...