2012-01-17 19 views
2

OSEO schemaからビジネスオブジェクトを生成するためにsvcutilコマンドラインを構築中です。'minOccurs'属性は存在しません

"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 

はので、私は次のエラーを取得していますsmil20-language.xsd

あるコマンドラインに最新のxsd to addの切り株をヒットしました

The 'minOccurs' attribute cannot be present

xsdからわかるように、多くの 'minOccurs'があります。

私の質問は:これらのエラーの原因は何ですか?どのように私は見つけるのですか?

エラーが完全であれば、行番号、コード、またはヒントは何も表示されません。

enter image description here

+0

より使いやすいXSDプロセッサで同じスキーマを作成してみてください。 –

+0

@Michael Kay:XSDプロセッサの提案はありますか? (フリーウェア) – capdragon

+0

提供されたURLから参照される一連のXSDファイルが有効です。ただし、必要な場所で直接コンテンツを参照しないことで、セット内の個々のファイルに問題があるようです。例えば。 gmlBase.xsd(http://schemas.opengis.net/gml/3.2.1/gmlBase.xsd)は、deprecatedTypes.xsdで定義されているグローバル属性であるgml:remoteSchemaを参照しています。 svcutilはそれを理解するのに苦労します。あなたにとって最良の方法は、セット全体をリファクタリングすることです(必要なのは100以上ではなく、実際には15個のXSDファイルです)、そこからsvcutilで取得します。興味があれば教えてください。詳細な回答を投稿します。 –

答えて

7

あなたが提供しているOSEOスキーマのリンクからたどることができるすべてのファイルで構成されたのXMLスキーマセットは、有効です。ツールは、残念ながら、その1つのファイルに対処できないようです。非常に複雑なインクルード/インポートでは、合計で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で入手できるジップに記載されています。このスレッドの外でチャットをしたい場合は、ウェブサイトに掲載されているサポートアドレスから私にメールを送ってください。 PDFを本当に小さくして、テスト方法だけを説明することに集中しました。 zipには、ダウンロードされたXSDと生成されたXSDが含まれています。希望します...

+0

リファクタリングが非常にクールです(+ 1) – capdragon

+0

恐ろしいです!魅力的な作品! – capdragon

+0

そのツールは絶対に素晴らしいです! – capdragon

関連する問題