'minOccurs'属性不能出现

时间:2012-01-17 14:47:40

标签: xml xsd svcutil.exe

我正在构建我的svcutil命令行以从OSEO schema生成业务对象。

每当它告诉我“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 to add上遇到了smil20-language.xsd

我收到以下错误:

  

'minOccurs'属性不能出现

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

所以我的问题是:哪些是导致这些错误的?我如何找到?

完整的错误不会提供行号,代码或任何提示。

enter image description here

1 个答案:

答案 0 :(得分:7)

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

Out of the box OSEO

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

我已在本地计算机上导入了所有XSD文件。我用过这个工具;它保留了布局,并自动重写< xsd:include /> s /< xsd:import /> 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尝试相同的设置将无法正常工作;它抱怨架构无效......不幸的是,我没有时间去研究。

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