この章では、TIBCO EBX®でサポートされるデータ型について詳しく説明します。
次の表に、EBX®でサポートされているXMLスキーマで定義されているすべての単純型と、それに対応するJava型を示します。
XMLスキーマタイプ | Javaクラス | メモ |
---|---|---|
| 文字列フィールドに定義されているデフォルトの戦略については、文字列フィールドのデフォルトの戦略のセクションで詳しく説明しています。 | |
| ||
| 値が15の | |
| ||
| 返されるDate の日付部分は常に「1970/01/01」に設定されます。 | |
| 返されるDate の時間部分は、常に1日の始まり、つまり「00:00:00」です。 | |
| ||
| ||
|
| |
|
| このマッピングは、XMLスキーマの推奨事項に準拠していません。 XMLスキーマ仕様では、xs:integer には値スペースの制限がないと記載されていますが、実際には、この値スペースはjava.lang.Integer オブジェクトのJava仕様によって制限されています。 |
XMLスキーマタイプとJavaタイプの間のマッピングについては、データタイプのマッピングのセクションで詳しく説明しています。
名前付き単純型は、既存のビルトイン単純型を再定義するためのデータモデルを設計するときに定義できます。 名前付きの単純型は、データモデルで再利用できます。
制限事項:
データモデルでは、名前付きの単純型ではエレメントstriction
のみが許可され、それでも、制限による派生のみがサポートされます。特に、エレメントlist
およびunion
はサポートされていません。
ファセット定義は累積的ではありません。つまり、要素とその名前付きタイプの両方が同じ種類のファセットを定義する場合、そのタイプで定義されたファセットはローカルファセット定義によってオーバーライドされます。
ただし、この制限は要素 osd:constraint
によって定義されるプログラム ファセットには適用されません。 osd:constraint
の場合、要素とその名前付き型の両方が異なる Java クラスを持つプログラム ファセットを定義する場合、これらのファセットの定義は累積されます。
XML スキーマ仕様に反して、EBX® は、要素内の同じ種類のファセットとその名前付き型の定義に関して厳密ではありません。つまり、要素で定義された同じ種類のファセットの値は、指定された型で定義されたものに従ってチェックされません。ただし、要素とその型の両方で定義された静的列挙の場合、ローカル列挙はこれらの列挙の共通部分に置き換えられます。
エレメントとその名前付きタイプの両方で異なるタイプの列挙を定義することはできません。たとえば、エレメントに静的列挙型を指定したり、名前付き型に動的列挙型を指定したりすることはできません。
エレメントとその名前付きタイプの両方でパターンファセットを同時に定義することはできません。
データモデルを設計するときに、複雑な型を定義できます。 名前付き複合型はデータモデルで再利用できます。
制限事項:
データモデルでは、エレメントsequence
のみが許可されます。特に、属性定義はサポートされていません。
タイプ拡張は、EBX®の現在のバージョンではサポートされていません。
EBX®は、事前定義された単純なデータ型を提供します。
XMLスキーマタイプ | Javaクラス |
---|---|
|
|
|
|
|
|
|
|
|
|
| 内部クラス |
|
|
|
|
|
|
上記のタイプは、内部スキーマcommon-1.0.xsd
によって定義されています。それらは次のように定義されます。
| このタイプは、テキスト情報を表します。 EBX®のデフォルトのユーザーインターフェイスは、入力と表示用に数行の専用エディターで構成されています。 このデータ型の使用は、非常に長いテキストを対象としています。これが、 <xs:simpleType name="text"> <xs:restriction base="xs:string" /> </xs:simpleType> |
| これは、HTML形式の文字列を表します。 WYSIWYGエディターはEBX®で提供されます。 <xs:simpleType name="html"> <xs:restriction base="xs:string" /> </xs:simpleType> |
| これは、RFC822標準で指定されている電子メールアドレスを表します。 <xs:simpleType name="email"> <xs:restriction base="xs:string" /> </xs:simpleType> |
| これは、ハッシュまたは暗号化されたパスワードを表します。 EBX®には特定のエディターが用意されています。 <xs:element name="password" type="osd:password" /> デフォルトのエディターは、SHA-512アルゴリズムを使用してハッシュ計算を実行します。この暗号化関数は、メソッド インターフェイス <xs:element name="password" type="osd:password"> <xs:annotation> <xs:appinfo> <osd:uiBean class="com.orchestranetworks.ui.UIPassword"> <encryptionClass>package.EncryptionClassName</encryptionClass> </osd:uiBean> </xs:appinfo> </xs:annotation> </xs:element> 別のフィールドへのパスを参照することでソルトを指定することができ、クラスを使用することで、インターフェイス <xs:element name="password" type="osd:password"> <xs:annotation> <xs:appinfo> <osd:uiBean class="com.orchestranetworks.ui.UIPassword"> <encryptionClass>package.HashClassName</encryptionClass> <saltPath>../login</saltPath> </osd:uiBean> </xs:appinfo> </xs:annotation> </xs:element> |
| これは、地理的、政治的、または文化的な場所を表します。 ロケール タイプは、クラス <xs:simpleType name="locale"> <xs:restriction base="xs:string"> <xs:enumeration value="ar" osd:label="Arabic" /> <xs:enumeration value="ar_AE" osd:label="Arabic (United Arab Emirates)" /> <xs:enumeration value="ar_BH" osd:label="Arabic (Bahrain)" /> <xs:enumeration value="ar_DZ" osd:label="Arabic (Algeria)" /> <xs:enumeration value="ar_EG" osd:label="Arabic (Egypt)" /> <xs:enumeration value="ar_IQ" osd:label="Arabic (Iraq)" /> ... <xs:enumeration value="vi_VN" osd:label="Vietnamese (Vietnam)" /> <xs:enumeration value="zh" osd:label="Chinese" /> <xs:enumeration value="zh_CN" osd:label="Chinese (China)" /> <xs:enumeration value="zh_HK" osd:label="Chinese (Hong Kong)" /> <xs:enumeration value="zh_TW" osd:label="Chinese (Taiwan)" /> </xs:restriction> </xs:simpleType> |
| これは、16進数のRGBカラーフォーマットの文字列を表します。 EBX®には、カラーピッカー <xs:simpleType name="color"> <xs:restriction base="xs:string" /> </xs:simpleType> |
| これは、モジュールにパッケージ化されたリソースを表します。詳細については、パッケージ化されたリソースを参照してください。このタイプには、ファセットFacetOResourceの定義が必要です。 <xs:simpleType name="resource"> <xs:restriction base="xs:anyURI" /> </xs:simpleType> |
| このタイプは、データスペースへの参照を表します。 <xs:element name="dataspaceField" type="osd:dataspaceKey" /> EBX®には、参照可能なデータスペースを表示する特定のエディターが用意されています。
<xs:element name="dataspaceField" type="osd:dataspaceKey"> <xs:annotation> <xs:appinfo> <osd:dataspaceSet> <include> <pattern>a pattern</pattern> <type>all | branch | version</type> <includeDescendants>none | allDescendants | allBranchDescendants | allSnapshotDescendants | branchChildren | snapshotChildren</includeDescendants> </include> <exclude> <pattern>a pattern</pattern> <type>all | branch | version</type> <includeDescendants>none | allDescendants | allBranchDescendants | allSnapshotDescendants | branchChildren | snapshotChildren</includeDescendants> </include> <filter osd:class="com.foo.MyDataspaceFilter"> <param1>...</param1> <param2>...</param2> </filter> </osd:dataspaceSet> </xs:appinfo> </xs:annotation> </xs:element>
|
| このタイプは、データセットへの参照を表します。 <xs:element name="dataset" type="osd:datasetName" /> EBX®で提供される特定のエディターは、参照可能なデータセットを表示します。
<xs:element name="datasetField" type="osd:datasetName"> <xs:annotation> <xs:appinfo> <osd:datasetSet> <branch>productsBranch</branch> <version>productsVersion</version> <dataspaceSelector>../dataspaceField</dataspaceSelector> <pattern>a pattern</pattern> <filter osd:class="com.foo.MyDatasetFilter"> <param1>...</param1> <param2>...</param2> </filter> </osd:datasetSet> </xs:appinfo> </xs:annotation> </xs:element>
エレメント
|
EBX®は、事前定義された複雑なデータ型を提供します。
XMLスキーマタイプ | 説明 |
---|---|
| ユーザー定義属性:このタイプを使用すると、アクセス権に応じて、すべてのユーザーがUDAカタログと呼ばれるディクショナリで定義された属性に関連付けられた値を定義できます。 |
| ユーザー定義属性のカタログ:このタイプは、属性を指定できるテーブルで構成されます。このカタログは、同じデータモデルで宣言されたすべての |
| ユーザー定義属性(UDA)は、 <xs:element name="firstUDA" type="osd:UDA" minOccurs="0" maxOccurs="unbounded" osd:UDACatalogPath="//insuranceCatalog" /> <xs:element name="secondUDA" type="osd:UDA" minOccurs="1" maxOccurs="1" osd:UDACatalogPath="/root/userCatalog" /> <xs:element name="thirdUDA" type="osd:UDA" minOccurs="0" maxOccurs="1" osd:UDACatalogPath="//userCatalog" /> マネージャーでは、UDAを操作するときに、エディターは選択した属性のタイプに適応します。 |
| 内部的には、カタログはテーブルとして表されます。パラメーター 同じデータモデルで複数のカタログを定義できます。 <xs:element name="insuranceCatalog" type="osd:UDACatalog" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation xml:lang="en-US">Insurance Catalog.</xs:documentation> <xs:documentation xml:lang="fr-FR">Catalog assurance.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="userCatalog" type="osd:UDACatalog" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation xml:lang="en-US">User catalog.</xs:documentation> <xs:documentation xml:lang="fr-FR">Catalogue utilisateur.</xs:documentation> </xs:annotation> </xs:element> 新しい属性の作成に使用できるのは、次のタイプのみです。
|
次の機能は、UDAエレメントではサポートされていません。
ファセット
osd:function
プロパティを使用する関数
osd:uiBean
プロパティを使用するUIBeanエディター
osd:checkNullInput
プロパティ
履歴機能
レプリケーション
osd:inheritance
プロパティを使用した継承機能
UDAカタログは内部的にテーブルと見なされるため、テーブルに適用される制限はUDACatalog
エレメントにも存在します。
XML スキーマでは、要素が出現できる最大回数は、その宣言の maxOccurs
属性の値によって決まります。この値が厳密に 1 より大きいか、制限なし
である場合、データは複数回出現する可能性があります。 osd:table
宣言が含まれていない場合、この要素は 集約リストと呼ばれます。
Java では、クラス java.util.List
のインスタンスとして表されます。
以下は、借入額に応じてローン商品の価格を定義する集計リストの例です。
<xs:element name="pricing" minOccurs="0" maxOccurs="unbounded" osd:access="RW"> <xs:annotation> <xs:documentation> <osd:label>Pricing</osd:label> <osd:description>Pricing grid </osd:description> </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="amount" type="xs:int"> <xs:annotation> <xs:documentation> <osd:label>Amount borrowed</osd:label> </xs:documentation> </xs:annotation> </xs:element> <xs:element name="monthly" type="xs:int"> <xs:annotation> <xs:documentation> <osd:label>Monthly payment </osd:label> </xs:documentation> </xs:annotation> </xs:element> <xs:element name="cost" type="xs:int"> <xs:annotation> <xs:documentation> <osd:label>Cost</osd:label> </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
集約リストには、EBX®専用のエディターがあります。このエディターを使用すると、オカレンスを追加または削除できます。
maxOccurs> 1
のエレメントに osd:table
宣言を追加することは、設計プロセス中に考慮しなければならない非常に重要な考慮事項です。集約リストは、テーブルでサポートされている多くの機能に関して厳しく制限されています。テーブルでサポートされている集約リストでサポートされていない機能は次のとおりです。
パフォーマンスとメモリの最適化
ルックアップ、フィルター、検索
階層での並べ替え、表示、表示
IDの制約(主キーと一意性の制約)
レコードレベルでの作成、変更、削除、および特定の権限に関する詳細な権限
詳細な比較とマージ
したがって、集計リストは、高度な要件なしで、少量の単純なデータ(1〜2ダースのオカレンス)にのみ使用する必要があります。大量のデータまたはより高度な機能の場合は、osd:table
宣言を使用することを強くお勧めします。
テーブル宣言の詳細については、テーブルと関係を参照してください。
現在のモデルに別のデータモデルを含めると、そのデータモデルで定義されている再利用可能なタイプを使用できます。したがって、外部データモデルを含めることで、複数のXMLスキーマドキュメント間でデータ型を共有できます。
モデルに別のXMLスキーマドキュメントを含め、それによってモデルが定義するデータ型を含めるには、次のようにxs:include
エレメントを指定します。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:osd="urn:ebx-schemas:common_1.0" xmlns:fmt="urn:ebx-schemas:format_1.0"> <xs:include schemaLocation="./schemaToInclude.xsd"/> ... </xs:schema>
属性schemaLocation
は必須であり、含めるXMLスキーマドキュメントへの絶対パスまたは相対パスを指定する必要があります。
XMLスキーマドキュメントを含めることはネームスペースに対応していないため、含まれるすべてのデータ型は同じネームスペースに属している必要があります。結果として、同じ名前のデータ型を定義するXMLスキーマドキュメントを含めることはサポートされていません。
EBX®には、組み込みデータモデルおよびモジュールにパッケージ化されたデータモデルを含めるための特定のURNを備えた拡張機能が含まれています。
埋め込みデータモデルをモデルに含めるには、EBX®で定義されたURNを指定します。以下に例を示します。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:osd="urn:ebx-schemas:common_1.0" xmlns:fmt="urn:ebx-schemas:format_1.0"> <xs:include schemaLocation="urn:ebx:publication:myPublication"/> ... </xs:schema>
モジュールにパッケージ化されたデータモデルを含めるには、EBX®で定義された特定のURNを指定します。以下に例を示します。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:osd="urn:ebx-schemas:common_1.0" xmlns:fmt="urn:ebx-schemas:format_1.0"> <xs:include schemaLocation="urn:ebx:module:aModuleName:/WEB-INF/ebx/schema/myDataModel.xsd"/> ... </xs:schema>
EBX®でサポートされている特定のURNの詳細については、SchemaLocation
を参照してください。
パッケージ化されたデータモデルがJavaリソースを使用する場合、データモデルを含むモジュールのクラスローダーは、これらのリソースを解決するために実行時に使用されます。