web-dev-qa-db-ja.com

xsd.exeを使用してc#ファイルを生成し、エラーと警告を取得する

これは私が実行しているコマンドです:

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

23
capdragon

リンクしたPDFドキュメントに含まれるXMLスキーマには、<import>要素を使用した他のいくつかのXSDファイルへの参照があります。これらの追加のスキーマファイルをダウンロードして、パスを確認する必要があります。 <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の要素を含みます。

29
pmartin

私は同じ問題を抱えていました、そしてこれは私がそれを解決した方法です:

1)コード生成の対象となるxsdで参照されているすべてのxsdファイルを同じ場所(「C:\ Projects\Project1\Documents\xsds\strucutre」)にコピーしました。 2)xsd.exeの実行中に、参照されているすべてのxsdファイルに言及しました。

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

Xsdsで言及されているエンティティを含むc-sharpファイルは、フォルダーC:\ Projects\Project1\Documents\ClassStructureの下に生成されました。

お役に立てれば!

27
DiligentKarma