検証クラスを使用すると、異なるタイプのビジネス・ルールを適用できます。汎用的に使用できる検証クラスと、特定の目的に使用する検証クラスがあります。既存の検証クラスのセットから、検証を作成できます。ノードに対するビジネス・ルールの多くは、そのロジックへの問合せを使用する検証クラスで適用できます。そのため、分析の目的で作成されている問合せを検証で利用し、データ整合性を管理することも可能です。バージョンおよび階層、またはノードの特殊ケースに関するルールは、他の検証クラスを使用して実行できます。検証クラスの一部は、製品テストの目的にのみ使用され、本番環境では使用されません。
表10-1 検証クラス
検証クラス | レベル | 説明 | パラメータ |
---|---|---|---|
BoolNodeInHier |
ノード |
指定された階層で、指定されたブール・プロパティの値がTrueであることを検証します。 |
プロパティ、階層 |
ContainAllProp |
グローバル・ノード |
指定された階層に、指定されたプロパティがTrueであるノードがすべて含まれることを検証します。 |
階層、プロパティ |
ContainAllWith |
グローバル・ノード |
指定された階層に、指定されたプロパティが指定された値であるノードがすべて含まれることを検証します。 |
階層、プロパティ、値 |
CustPropQuery |
ノード |
事前定義済問合せと予測される結果を使用して検証します。 ローカル・プロパティ問合せのみを使用できます。 |
プロパティ問合せ名、失敗値 |
DateRangeCheck |
ノード |
「開始日」が「終了日」より前であることを検証します。 |
開始日プロパティ、終了日プロパティ |
Formula |
ノード |
式で表されるビジネス・ロジックを使用してノードを検証します。式の結果がFalseの場合は検証が失敗します。 |
Formula |
GlobalPropQuery |
グローバル・ノード |
事前定義済問合せと予測される結果を使用して検証します。 |
プロパティ問合せ名、失敗値 |
HierContainsRef |
ノード |
ブール・プロパティがTrueの場合、またはノードがリーフで3番目のブール・プロパティがTrueの場合は、階層にノードへの参照が含まれます。 |
階層名、すべてのノードのブール・プロパティ、リーフ・ノードのブール・プロパティ |
HierFail |
階層 |
テストのために、階層レベルで自動的に失敗します。 |
なし |
InvalidNameLength |
ノード |
ノード名が指定された長さに等しくないことを検証します。 |
長さ |
MaxChildren |
バージョン |
ノード当たりの子の数が指定の制限を超えていないことを検証します。 |
子の最大数 |
MaxHierNodes |
階層 |
階層内のノード数が指定の制限を超えていないことを検証します。 |
ノードの最大数 |
MaxVersionNodes |
バージョン |
バージョン内のノード数が指定の制限を超えていないことを検証します。 |
ノードの最大数 |
MergeEquiv |
マージ |
影響されるノードとマージ・ノードで、指定されたプロパティの値が同じであることを検証します。 |
グローバル・ノード・プロパティ |
MergePropSet |
マージ |
影響されるノードのプロパティ値が設定(上書き)されている場合に、指定されたプロパティに対してマージ・ノードのプロパティ値が指定されていることを検証します(プロパティ値が同じである必要はありません)。 |
プロパティ |
MixedKids |
ノード |
リムおよびリーフの両方の子があるノードをチェックします。 |
なし |
NoBoolBranch |
ノード |
指定されたブール・プロパティが、指定された分岐で少なくとも1回はTrueに設定されていることを検証します。 |
プロパティ |
NodeFail |
グローバル・ノード |
テストのために、バージョン・レベルのノードが自動的に失敗します。 |
なし |
NodeFailRandom |
ノード |
テストのために、指定された割合のノードで自動的に失敗します。 |
失敗の割合 |
NoDefaults |
ノード |
指定されたプロパティでデフォルト値が使用されないことを検証します。 |
プロパティ |
NoPropBranch |
ノード |
指定されたプロパティが、指定された分岐で少なくとも1回指定されていることを検証します。 |
プロパティ |
PropEquivBool |
ノード |
3番目のブール・プロパティ値がTrueの場合のプロパティ同等性。 |
評価するブール・プロパティ、1番目のプロパティ、2番目のプロパティ |
PropLength |
ノード |
指定されたプロパティが最小の長さ以上、かつ最大の長さ以下であることを検証します。 |
プロパティ、最小長、最大長 |
PropRemove |
除去 |
(prop1、prop2、prop3のパラメータで)指定されたプロパティが指定された値(値1、値2、値3のパラメータ)に等しい場合にノードが除去されないようにします。 |
プロパティ1、プロパティ2、プロパティ3、値1、値2、値3 |
RequiredField |
ノード |
指定されたプロパティが指定された値を持つすべてのノードについて、必須リストの各プロパティが値を持つことを検証します。
|
プロパティ、値、デフォルトのレコードを拒否、必須プロパティ |
Script |
ノード、階層、バージョン、マージ、グローバル・ノード、移動、除去、マージ |
動的スクリプトを使用してデータを検証します。戻り値がTrueの場合は検証が成功します。戻り値がFalseの場合は検証が失敗します。 |
Script |
SingleBoolBranch |
ノード |
指定されたブール・プロパティが、分岐ごとに1回のみTrueに設定されていることを検証します。 |
プロパティ |
SinglePropBranch |
ノード |
指定されたプロパティが、分岐ごとに1回のみ設定されていることを検証します。 |
プロパティ |
StrandedParent |
ノード |
すべてのリム・ノードに子があることを検証します。 |
なし |
StrPropEqual |
ノード |
指定されたプロパティが指定された値に等しいノードのすべてで失敗します。 |
プロパティ、値 |
UniqueProp |
ノード |
指定されたプロパティの値が、階層内で重複していないことを検証します 「デフォルトを含む」が「False」の場合、デフォルト値のノードは含まれません。 共有を除外が「True」の場合、プロパティ値の一意性のチェック時に共有ノードは考慮されません。 |
プロパティ、デフォルトを含む、共有を除外 UniqueProp検証では、インデックス付きプロパティを使用することをお薦めします。 |
UniquePropBranch |
ノード |
指定されたプロパティの値が、分岐内で一意であることを検証します。 |
プロパティ |
VersionFail |
バージョン |
テストのために、バージョン・レベルで自動的に失敗します。 |
なし |
VersionUnique2Prop |
グローバル・ノード |
指定されたプロパティの値が、バージョン内で重複していないことを検証します 「デフォルトを含む」が「False」の場合、デフォルト値のノードは含まれません。 共有を除外が「True」の場合、プロパティ値の一意性のチェック時に共有ノードは考慮されません。 |
第1プロパティ、第2プロパティ、デフォルトを含む、共有を除外 |
VersionUniqueProp |
グローバル・ノード |
指定されたプロパティの値が、バージョン内で重複していないことを検証します 「デフォルトを含む」が「False」の場合、デフォルト値のノードは含まれません。 共有を除外が「True」の場合、プロパティ値の一意性のチェック時に共有ノードは考慮されません。 |
プロパティ、デフォルトを含む、共有を除外 |