このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Enterprise Edition

文字の型

生成された C++ コードを Unicode へのサポート有り、無しでコンパイルすることができます。型に従い型 string_typetstring は幅の狭いまたは広い文字により構成される std::string または std::wstring として定義されます。現在の 8-ビット 文字セットで表示できない XML ファイル内で Unicode 文字を使用するには、 Unicode サポートを有効化する必要があります。_T() マクロに特に注意してください。このマクロは文字列の制約が正確に保管されていること、 Unicode または非 Unicode プログラムのためにコンパイルされているかを確認します。

 

データ型

C++ データ型への XML スキーマ型のデフォルトのマッピングは以下の通りです:

 

スキーマ

C++

リマーク

xs:string

string_type

string_type は std::string または std:wstring として定義されます

xs:boolean

bool


xs:decimal

double

C++ が小数型を持たない場合、ダブルが使用されます。

xs:float, xs:double

double


xs:integer

__int64

xs:integer には無制限の範囲と精度が存在します。効率のために __int64 にマップされます。

xs:nonNegativeInteger

unsigned __int64

上を参照

xs:int

int


xs:unsignedInt

unsigned int


xs:dateTime, date, time, gYearMonth, gYear, gMonthDay, gDay, gMonth

altova::DateTime


xs:duration

altova::Duration


xs:hexBinary and xs:base64Binary

std::vector<unsigned char>

バイナリデータのエンコードとデコードは自動的に行われます。

xs:anySimpleType

string_type


 

このリストに含まれていないすべての XML スキーマ型は派生した型で、対応するベース型として同じ C++ 型にマップされます。

 

生成されたクラス

スキーマ内の各型のために型の各属性と要素のためのメンバーを含むクラスが生成されます。メンバーには元のスキーマ内の属性と要素と同じ名前が付けられます (競合のために番号が付加されます)。単純型のために、演算子の割り当てと変換が生成されます。列挙ファセットを持つ単純型のためにメソッドGetEnumerationValue()SetEnumerationValue(int) を各列挙の値のために生成された制約と共に使用することができます。更にメソッド StaticInfo() は以下の型の1つとしてスキーマ情報にアクセスすることを許可します:

 

altova::meta::SimpleType

altova::meta::ComplexType

 

複合型から生成されるクラスは型の xsi:type 属性の設定を可能にする メソッド SetXsiType() を含みます。派生した型の XML インスタンス要素を作成する場合にこのメソッドは役に立ちます。

 

XML スキーマ内で宣言されている型のためのクラスに加え ドキュメントクラス ("CDoc" と識別される) が生成されます。全ての可能なルート要素をメンバーおよび多種の他のメソッドとして含んでいます。クラスに関する情報に関しては [YourSchema]::[CDoc] を参照してください。

 

メモ:        実際のクラス名は .xsd スキーマの名前により異なります。

 

スキーマ型の各メンバー属性または要素のために、新規のクラスが生成されます。このようなクラスに関する詳細は、以下を参照してください:

 

[YourSchema]::MemberAttribute

[YourSchema]::MemberElement

 

メモ:        実際のクラス名はスキーマ属性または要素の名前により異なります。

 

サンプル: スキーマラッパーライブラリの使用を参照してください。

 

エラーの処理

エラーは例外によりレポートされています。次の例外クラスは名前空間 altova 内で定義されています:

 

クラス

ベースクラス

説明

エラー

std::logic_error

内部プログラムロジックエラー (入力データに依存しません)。

例外

std::runtime_error

ランタイムエラーのためのベースクラス

InvalidArgumentsException

例外

無効な引数の値を使用して呼び出されたメソッド

ConversionException

例外

型変換に失敗した際スローされる例外

StringParseException

ConversionException

値スペース内の値は構文的なスペースに変換することはできません。

ValueNotRepresentableException

ConversionException

値スペース内の値は構文的なスペースに変換することはできません。

OutOfRangeException

ConversionException

ソース値をターゲットドメイン内で表示することができません。

InvalidOperationException

例外

試行済みのオペレーションは与えられたコンテキスト内で有効ではありません。

DataSourceUnavailableException

例外

XML インスタンスのロード中問題が発生しました。

DataTargetUnavailableException

例外

XML インスタンスの保存中門外が発生しました。

 

メッセージテキストと可能な内部例外へのポインターを含むすべての例外クラス。

 

メソッド

目的

string_type message()

例外のテキスト説明を返します。

std::exception inner()

使用可能または NULL の場合、この例外を引き起こした例外を返します。

 

スキーマ情報にアクセスする方法

生成されたライブラリは以下のクラスを介して静的なスキーマ情報へのアクセスを許可します。全てのメソッドは const として宣言されています。対応するプロパティが存在しない場合メタデータのクラスの一つを返すメソッドは NULL オブジェクトを返します。

 

altova::meta::Attribute

altova::meta::ComplexType

altova::meta::Element

altova::meta::SimpleType

(C) 2020 Altova GmbH