Skip Headers
Oracle® Fusion Middleware Infrastructure Components and Utilities User's Guide for Oracle Application Integration Architecture Foundation Pack
11g Release 1 (11.1.1.7)

Part Number E17366-09
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

B Code Compliance Inspector: New Terminology & Available Assertion Executors

This appendix describes the new terminology, delivered assertions, and the available assertion executors for the Code Compliance Inspector tool.

There are two executors for CCI:

This appendix includes the following sections:

B.1 New Terminology

The Code Compliance Inspector was previously called the Process Integration Pack (PIP) Auditor. The new labels and concepts for Code Compliance Inspector are described in Table B-1.

Table B-1 New terminology

Old Name New Name Description

PIP Auditor

Code Compliance Inspector

Run the Code Compliance Inspector to check for good coding practices.

Rule

Assertion

Assertion replaces the <Rule> tag within the old Rules.xml. Assertions can be defined once within the AssertionCatalog.xml files and then used within one or more Policies in the Policies.xml files.

RuleSet

AssertionSet

AssertionSet replaces the <Ruleset> tag within the old Rules.xml. AssertionSet is informational only and is not surfaced in the JDeveloper Extension or in the Code Compliance By Policy Report.

Rules.xml

AssertionCatalog.xml

There are two files: AssertionCatalog-AIA-<version>.xml and AssertionCatalog-WS-I-<version>.xml.

Category

Category

Category is part of an Assertion's definition in AssertionCatalog.xml. Category is a tag within the definition of an Assertion, that is largely just informational. For this release, existing categories will become the Policy names; meaning that all Assertions tagged with a particular category will appear in the Policies.xml files using a Policy name that matches the Category.

TestSuite

Policy

Replaces the <TestSuite name= > tag in the old TestSuite.xml with <Policy name= >; Policies can be reused into more coarse-grained policy buckets using the <depends name=> tag.

Test

Assertion

Replaces the <Test rulename= > tag in the old TestSuite.xml.

TestSuite.xml

Polices.xml

There are two files: Policies-AIA-<version>.xml and Policies-WS-I-<version>.xml. Within the Policies.xml provided by Oracle, the policy name should match the Catalog names used within the Assertions in the AssertionCatalog.xml. Customers can modify the Policies.xml including renaming and reorganizing the Policies & Assertions.

pipaudit

CheckCompliance

Command line utility.

Priority

Priority

This term remains the same. Priorities are defined as:

  • Priority 1 assertions are the basic assertions that an integration project has to satisfy 100% to be qualified as a Compliant.

  • Priority 2 assertions are more stringent on certain design time patterns and an integration project that meets these assertions is qualified as Conformant.

  • Priority 3 assertions are the most stringent at the lowest levels of the technology, and an integration project that meets at least a certain threshold of these assertions is qualified as Fully Conformant.

  • Priority 4 assertions are recently introduced assertions that can be qualified as P3 or P2 or P1 assertions. For this release, these assertions do not play a role in the qualification of an integration project.

Priority levels are additive in nature, so passing Priority 2 (conformant) means that you need to pass Priority 1 (compliance) as well. A detailed list of pre-defined assertions can be viewed in the packaged Assertion Catalog XML files available under the ComplianceInspector/config directory.


B.2 Delivered Assertions

The following tables show the delivered assertions. These pre-defined assertions can be viewed in the packaged Assertion Catalog XML files located in the ComplianceInspector/config directory.

Table B-2 Category :Coding Standards

Assertion Priority Description

NoTargetSysIdHardWiringInDVMLookupCheck

1

The Target SystemId must not be hardwired in DVM lookups when used in XSL. The syntax used should be: orcl:lookupValue('DVM_NAME',$DVMSourceCol,XPATH,$DVMTargetCol,'') where DVM_NAME can contain alphanumeric and underscore characters and XPATH can contain any XPATH expression.

Note: the targetId column can be one of the following: 1) Any Xpath. 2) 'COMMON' 3) a variable that does not contain a hard coded string value. 4) Xpath function.

NoTargetSysIdHardWiringInXREFLookupCheck

1

The Target SystemId must not be hardwired in XREF lookups when used in XSL. The syntax used should be: xref:lookupXRef('XREF_NAME',$XREFSourceCol,XPATH,$XREFTargetCol,true()|false()) where XREF_NAME can contain alphanumeric and underscore characters and XPATH can contain any XPATH expression.

Note: the targetId column can be one of the following: 1) Any Xpath. 2) 'COMMON' 3) a variable that does not contain a hard coded string value. 4) Xpath function.

TXNEnableInASyncDelayed

2

This check is for an Async Delayed Response service. It must participate in a global transaction.

TXNEnableInFireForget

2

This check is for a Fire and Forget service. It must participate in a global transaction.

TonkenizedReferencesInXSLCheck

2

All http URLs that point to an http server location must be tokenized with ${hostname} and ${port}.

NameSpacePrefixesNamingInBPELCheck

3

In a BPEL process, namespace prefixes must follow naming standard guidelines. The ns1, ns2 prefixes which are generated by default are not allowed.


Table B-3 Category :Error Handling Standards

Assertion Priority Description

CatchBlockBindingFaultExistInBPELCheck

2

Catch block has to be defined for BindingFault in BPEL process.

CatchBlockRemoteFaultExistInBPELCheck

2

Catch block has to be defined for RemoteFault in BPEL process.


Table B-4 Category :Loose Coupling Standards

Assertion Priority Description

TonkenizedReferencesInBpelCheck

2

All http URLs that point to an http server location must be tokenized with ${hostname} and ${port}.

TonkenizedReferencesInCompositeCheck

2

All http URLs that point to an http server location must be tokenized with ${hostname} and ${port}.

TonkenizedReferencesInWSDLCheck

2

All http URLs that point to an http server location must be tokenized with ${hostname} and ${port}.


Table B-5 Category :Naming Standards

Assertion Priority Description

BPELAssignActivityNamingCheck

3

Change the default JDeveloper generated name for the 'assign' activity.

BPELInvokeActivityNamingCheck

3

Change the default JDeveloper generated name for the 'invoke' activity.

BPELReceiveActivityCheck

3

Change the default JDeveloper generated name for the 'receive' activity.

BPELReplyActivityNamingCheck

3

Change the default JDeveloper generated name for the 'reply' activity.

BPELScopeActivityCheck

3

Change the default JDeveloper generated name for the 'scope' activity.


Table B-6 Category :Performance Standards

Assertion Priority Description

CompletionPersistPolicyCheck

1

The bpel.config.completionPersistPolicy property configures how the instance data is saved. For synch transient processes, the value for this property should be 'faulted.' Only the faulted instances will be saved.

SynchAuditLogLevelCheck

1

The bpel.config.auditLavel property configures how the BPEL service engine will capture audit details. For Synch Transient processes, the value for this property should be 'faulted.'


Table B-7 Category :Reusability Standards

Assertion Priority Description

NoLocalSchemasInBPELCheck

2

The BPEL Process folder must not contain any schema files. All Utility schemas must be accessed from a web server.

NoLocalAdaptersInBPELCheck

3

Adapters should be defined as ESB services. This helps in Endpoint Virtualization. Also, BPEL processes gain homogeneity, focusing on business problems rather than protocol transformations.

NoSchemaElementsDefinedInWSDLCheck

3

WSDLs should use schema imports. All schema elements must be defined in XSD.


Table B-8 Category :Security Standards

Assertion Priority Description

NoPlinkusageForSettingWSSecPropCheck

1

BPEL processes must not use property for passing the username and password for ws-security. OWSM should be used for all web services invocation authentication purposes.

NoUnamePwdInDVMCheck

1

DVM stores must not store credentials. They should not contain UserName and Password values. OWSM should be used for all web services invocation authentication purposes.


Table B-9 Category :WS-I BP Standards

Assertion Priority Description

SchemaImportUsedforXSDOnlyCheck

3

WSDL import elements must not be used to import other kinds of XML schemas. WSDL imports must only import WSDLs. This check is to ensure compatibility with the WS interoperability basic profile 1.0.

SchemaImportsOnlyInsideSchemaCheck

3

XML Schema 'import' statements must be within the xsd:schema element of the types element.

SchemaNodeOnlyInsideWsdlTypesCheck

3

XML Schema elements must be within the xsd:types element of the types element.

SchemaTargetNamespaceExistCheck

3

All xsd:schema elements contained in a wsdl:types element must have a targetNamespace attribute with a valid and non-null value, unless the xsd:schema element has xsd:import and/or xsd:annotation as its only child element(s).

SchemaTargetNamespaceMatchingCheck

3

WSDLs must not import WSDLs that have a different targetNamespace in the definition. This assertion assumes that inputDir contains the AIAMetaData directory.

SchemaXSDFileRootSchemaCheck

3

XSD files must import XSD files that have schema as a root node in the location of xsd:import. This assertion assumes that inputDir contains the AIAMetaData directory .

UTFEncodingUsedinSchemaCheck

3

Schema definitions must use UTF-8 or UTF-16 encoding. UTF encoding can be specified in the processing instruction of an XML. The assertion looks for the existence of UTF in the processing instructions. This check is to ensure compatibility with the WS interoperability basic profile 1.0.

UTFEncodingUsedinWSDLCheck

3

WSDL description must use UTF-8 or UTF-16 encoding. UTF encoding can be specified in the processing instruction of an xml. The assertion looks for the existence of UTF in the processing instruction. This check is to ensure compatibility with the WS interoperability basic profile 1.0.

WSDLDocumentationIsFirstChildCheck

3

The wsdl:documentation element may be present as the first child element of wsdl:import, wsdl:part and wsdl:definitions in addition to the elements cited in the WSDL1.1 specification.

WSDLFileRootDefinitionsCheck

3

WSDLs must import WSDL files that have definitions as a root node in the location of wsdl:import. This assertion assumes that inputDir contains the AIAMetaData directory.

WSDLImportLocationNotEmptyCheck

3

The location attribute of all wsdl:import elements must be non-empty.

WSDLImportNoRelativeURIInNSCheck

3

The namespace attribute of wsdl:import must not be a relative URI. The URI should be an absolute URI as per URI standards. This check is to ensure compatibility with the WS interoperability basic profile 1.0.

WSDLImportOnlyPrecededByDocCheck

3

All WSDL import elements must only be preceded by WSDL documentation element in a WSDL file. This check is to ensure compatibility with the WS interoperability basic profile 1.0.

WSDLImportUsedforWSDLOnlyCheck

3

WSDL import element must not be used to import other kinds of XML schemas. WSDL import must only import WSDLs. This check is to ensure compatibility with WS interoperability basic profile 1.0.

WSDLImportsOnlyInsideDefinitionCheck

3

All WSDL 'import' statements must be within wsdl:definition elements.

WSDLOperationMustHaveInputCheck

3

Solicit-Response and Notification type operations must not be used in a wsdl:portType definition. For example, output messages should always be after input messages.

WSDLOperationNameMustBeUniqueCheck

3

All wsdl:portType elements must have operations with distinct values for their name attributes(overloading).

WSDLPartMustNotUseElementAndTypeCheck

3

A wsdl:message element must not specify both 'type' and 'element' attributes on the same wsdl:part element.

WSDLTargetNamespaceMatchingCheck

3

WSDLs must not import other WSDLs that have different targetNamespace in definitions. This assertion assumes that inputDir contains the AIAMetaData directory.

WSDLTypesOnlyPrecededByDocAndImportCheck

3

All WSDL types elements must only be preceded by WSDL documentation element or wsdl import in a WSDL file. This check is to ensure compatibility with the WS interoperability basic profile 1.0.

XMLversionUsageInSchemaCheck

3

XSD files must use XML version 1.0. The XML version can be specified in the processing instructions of an XML. The assertion looks for the existence of version in the processing instructions. This check is to ensure compatibility with WS interoperability basic profile 1.0.

XMLversionUsageInWSDLCheck

3

WSDL files must use XML version 1.0. The XML version can be specified in the processing instructions of an XML. The assertion looks for the existence of version in the processing instructions. This check is to ensure compatibility with WS interoperability basic profile 1.0.


B.3 Assertion Parameters for the XPathExecutor

The following tables describe the mandatory and optional parameters for the XPathExecutor.

B.3.1 Mandatory Parameters List

Table B-10 describes the mandatory parameters.

Table B-10 Mandatory Parameters for XPathExecutor

Param Name Description Default Value Example Failure Situation

Xpath.search

XPath to be executed on a particular document

No default

//xsl:variable/@name

XPath execution failure exception

xpath.namespace.prefixes

The list of delimited values of namespace prefixes that are used for a particular XPath expression execution.

No default

'bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"; xsl="http://www.w3.org/1999/XSL/Transform"; aiacfg="http://xmlns.oracle.com/aia/core/config/V1"; wsdl="http://schemas.xmlsoap.org/wsdl/"; xsd="http://www.w3.org/2001/XMLSchema"; xsd="http://www.w3.org/2001/XMLSchema";

XPath execution failure exception

assertCondition

If the Assertion level attribute "operation" is not present then this param value will be the valid executor operation name. Otherwise, this can be used as a sub-operation value.

No default

XpathValuesPatternMatchCheck

Unsupported operation exception

xpath.match.regxpattern

Assertion value

No default

[a-zA-Z_0-9]*

The regular expression says that a variable name can contain only alphanumeric characters with underscores.

Error depending on the comparison type


B.3.2 Optional Parameters List

Table B-11 describes the optional parameters.

Table B-11 Optional Parameters for XPathExecutor

Param Name Description Default Value Example Failure Situation

xpath.notexist.ignore

Every XPath operation assumes that the comparison between the XPath execution result and the assertValue can only be made if the output NodeList returned after evaluating the Xpath contains at least one node (the default behavior except for the 'XpathExists' and 'XpathNotExists' operations). The default behavior of non-compliance is reported if the XPath does not return any nodes.)

False

We have a test saying "all compensate activities in BPEL should start with a prefix of compensate". Now if we do not have any compensate activities in a BPEL file, Code Compliance Inspector reports a non-compliance. If we specify xpath.notexist.ignore="true", then the test would be considered a success by Code Compliance Inspector.

--

xml.external.filename

There are situations when the assertValue is more than just a mere String. The value can be an entire XML fragment, which contains regEx patterns. In this case, a compare file argument specifies the file and the XPath specifies the fragment within the file.

No default

Used to compare standard code snippets.

<Param name="xml.external.filename" value="${faultXML}" default="AIAStdCode.xml"/>

--

xml.external.search.xpath

Xml.external.search.xpath is always used with xml.external.filename. As mentioned above, this XPath helps us identify the XML fragment for comparison.

--

<Param name="xml.external.search.xpath" value="//EBMHeaderPopulation/corecom:EBMHeader/P4/corecom:MessageProcessingInstruction"/>

This is used with the xml.external.filename param above.

When we apply the XPath (Xml.external.search.xpath) on the file (Xml.external.filename) we get an XML fragment for comparison. In the above example, the MessageProcessingInstruction returned by evaluating XPath on selected files is evaluated against MessageProcessingInstruction returned by evaluating Xml.external.search.xpath on the file Xml.external.filename.

--

xml.node.match.mode

Special operations, if any, to be executed to derive the assertValue. Otherwise, the default behavior is executed which is stated in the default section

Default: String

It converts the NodeList from Resultant XPath to string (ConvertNodeListToStirng)

Currently, the only supported type is length. By default, when nothing is specified, it converts the resultant NodeList to String.

--


B.4 Assertion Parameters for the FSExecutor

The following tables describe the mandatory and optional parameters for the FSExecutor.

B.4.1 Mandatory Parameters List

Table B-12 describes the mandatory parameters.

Table B-12 Mandatory Parameters for the FSExecutor

Param Name Description Default Value Example Failure Situation

assertCondition

Any one of the operations supported by the FSExecutor. See the Available Operations for FSExecutor section.

No default

FileNotExistCheck

Unsupported Operation exception

filename.search.regxpattern

Regular expression for selecting matching files.

No default

a-zA-Z_0-9_/]*(EBF)((V)[0-9]*)??.wsdl

Invalid Regular expression


B.4.2 Optional Parameters List

Table B-13 describes the optional parameters.

Table B-13 Optional Parameters for the FSExecutor

Param Name Description Default Value Example Failure Situation

filename.match.regxpattern

Assertion value (String)

No default

InputFilePattern_(c|C)ustom.xsl

--

filecontent.exclude.regxpattern

Exclude of file for which content matched with this pattern (Regular Expression)

No default

.*(c|C)ustom.xsl

--

filename.exclude.regxpattern

Exclude of file for which filename matched with this pattern (Regular Expression)

No default

.*(JMSProducer|OutboundHeader).*.wsdl

--


B.5 Available Operations for the XPathExecutor

The following tables describe the available operations for the XPathExecutor.

XpathListExistCheck

Checks for the existence of the nodes in the given XPath List. Every XPath in the list should have at least one node. This is very similar to the XpathExist operation except that we can check for multiple XPaths.

Table B-14 XpathListExistCheck

Operation Description Comments

Xpath.search

XPath where zero nodes are expected

-

Xpath.namespace.prefixes

-

-

Xpath.1.search

-

/A/B

Xpath.2.search

-

And so on... We can check for 'n' XPaths in this manner (xpathn)

xml.local.imports.resovable

-

-

xml.remote.imports.resovable

-

-

local.metadir

-

-


XpathNotExistsCheck

Checks for the existence of the nodes in the given XPath List. Every XPath in the list should have at least one node. This is very similar to the XpathExist operation except that we can check for multiple XPaths.

Table B-15 XpathNotExistsCheck

Operation Description Comments

Xpath.search

XPath where zero nodes are expected

-

Xpath.namespace.prefixes

-

-

xml.local.imports.resovable

-

Same as the one in XpathExists.

xml.remote.imports.resovable

-

-

local.metadir

-

-


XpathNodeCountLessThanCheck

Checks if the number of nodes found at the XPath is less than the assert value.

Table B-16 XpathNodeCountLessThanCheck

Operation Description Comments

Xpath.search

XPath for which node count is checked.

-

Xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Maximum number of nodes that can be present for the XPath. Note that if your intended value is 'n' then the assert value is its 'n+1'.

All BPEL processes, which follow SYNC Request Response pattern, should not have more than 6 extension points.

So assert value would be '7'.


XpathNodeCountGreaterThanCheck

Checks if the number of nodes found at the XPath is less than the assert value.

Table B-17 XpathNodeCountGreaterThanCheck

Operation Description Comments

Xpath.search

XPath for which node count is checked.

-

Xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Minimum number of nodes that can be present for the XPath. Note that if your intended value is 'n' then the assert value is its 'n-1'.

All BPEL processes, which follow SYNC Request Response pattern, should have minimum of 4 extension points.

So assert value would be '3'.


XpathValuesLessThanCheck

Checks if the value in the XPath is less than the assert value.

Table B-18 XpathValuesLessThanCheck

Operation Description Comments

Xpath.search

-

XPath for which node count is checked.

-

Xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Maximum number that the value from the XPath can have. Note that if your intended value is 'n' then the assert value is its 'n+1'.

All BPEL processes, which follow SYNC Request Response pattern, should not have more than 6 extension points.

So assert value would be '7'.


XpathValuesLessThanEqualCheck

Checks if the value in the XPath is less than or equal to the assert value.

Table B-19 XpathValuesLessThanEqualCheck -

Operation Description Comments

Xpath.search

XPath for which node count is checked.

-

Xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Maximum number that the value from XPath can have.

-


XpathValuesGreaterThanCheck

Checks if the value in the XPath is greater than the assert value.

Table B-20 XpathValuesGreaterThanCheck

Operation Description Comments

Xpath.search

XPath for which node count is checked.

-

Xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Minimum number of nodes that can be present for the XPath. Note that if your intended value is 'n' then the assert value is its 'n-1'.

All BPEL processes, which follow SYNC Request Response pattern, should have minimum of 4 extension points.

So assert value would be '3'.


XpathValuesGreaterThanEqualCheck

Checks if the value in the XPath is greater than or equal to the assert value.

Table B-21 XpathValuesGreaterThanEqualCheck

Operation Description Comments

Xpath.search

XPath for which node count is checked.

-

Xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Minimum number of nodes that can be present for the XPath.

-


CompareNodeWithRegExXMLCheck

Checks if the node returned by the XPath matches the XML snippet from a file. Note that it is a regular expression comparison and the snippet can contain regular expressions.

Table B-22 CompareNodeWithRegExXMLCheck

Operation Description Comments

Xpath.search

XPath for the node, which has to be checked.

-

xpath.namespace.prefixes

-

-

xml.external.filename

The XML file where the snippet for comparison lies.

"ABCS WSDL should be documented as per AIA Documentation standards." The file AIAStdCode.xml for example contains all the XML snippets. So this file is the xml.external.filename

xml.external.search.xpath

//ABCSwsdlDoc/wsdl:documentation

XPath to derive the XML snippet from the xml.external.filename XML file.

This XPath will separate out just the documentation snippet from the XML.


CompareNodeListWithRegExXMLCheck

Checks if every node from the NodeList returned by the XPath matches the XML snippet from a file. Note that it is a regular expression comparison and the snippet can contain regular expressions. This can be used when multiple nodes from a file have to be checked against the same XML snippet.

Table B-23 CompareNodeListWithRegExXMLCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should be compliant to the XML snippet derived using xml.external.filename and xml.external.search.xpath.

xpath.namespace.prefixes

-

-

xml.external.filename

The XML file where the snippet for comparison lies.

"Catch blocks are defined as per AIA Error Handling Guidelines." The file AIAStdCode.xml for example contains all the XML snippets. So this file is the xml.external.filename

xml.external.search.xpath

XPath to derive the XML snippet from the xml.external.filename XML file.

//catch

This XPath will separate out just the documentation snippet from the XML.


XpathValuesEqualCheck

Checks if the string value of every node from the NodeList returned by the XPath matches the string value specified in the assert value.

Table B-24 XpathValuesEqualCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should be compliant to the assert value.

xpath.namespace.prefixes

-

-

xpath.match.regxpattern

String value to check against.

-

xpath.notexist.ignore

-

-


XpathValuesNotEqualCheck

Checks if the string value of every node from the NodeList returned by the XPath does not match the string value specified in the assert value.

Table B-25 XpathValuesNotEqualCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should be compliant to the assert value.

xpath.namespace.prefixes

-

-

xpath.match.regxpattern

String value to check against.

-

xpath.notexist.ignore

-

-


XpathValuesPatternMatchCheck

Checks if the string value of every node from the NodeList returned by the XPath matches the regular expression pattern specified in the assert value.

Table B-26 XpathValuesPatternMatchCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should be compliant to the assert value.

xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Regular expression pattern to check against.

"All Assign activities in a BPEL process should start with a prefix of Assign followed by activity name". The pattern would look like: (Assign){1}(_)??(([a-zA-Z])([a-zA-Z_0-9])*)

xpath.notexist.ignore

-

-


XpathValuesNotMatchPatternCheck

Checks if the string value of every node from the NodeList returned by the XPath does not match the regular expression pattern specified in the assert value. This does the exact opposite check of XpathValuesPatternMatch.

Table B-27 XpathValuesNotMatchPatternCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should be compliant to the assert value.

xpath.namespace.prefixes

-

-

xpath.match.regxpattern

Regular expression pattern to check against.

"Target node should not be populated during ABM to EBM transformation in Requester ABCSImpl."

The following pattern would ensure that no hard coding of target ID is present. :([a-zA-Z_0-9\s]*)

xpath.notexist.ignore

-

-


XpathValueNotContainsCheck

Checks if the string value of every node from the NodeList returned by the XPath does not contain the string specified in the assert value.

Table B-28 XpathValueNotContainsCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should be compliant to the assert value.

xpath.namespace.prefixes

-

-

xpath.match.regxpattern

String value to check against.

"DVM stores should have no credentials stored.."

The following pattern would ensure that no tokens that are generally used to store credentials are used in DVMs.:UserName;Password;uname;pwd;username;password

xpath.notexist.ignore

-

-


XpathValueContainsCheck

Checks if the string value of every node from the NodeList returned by the XPath contains the string specified in the assert value.

Table B-29 XpathValueContainsCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should be compliant to the assert value.

xpath.namespace.prefixes

-

-

xpath.match.regxpattern

String value to check against.

-

xpath.notexist.ignore

-

-


ExistsRegExXMLCheck

Iterates through the children of the node specified by xml.external.filename and xml.external.search.xpath. Checks if every node in NodeList returned by executing xml.external.search.xpath on xml.external.filename, exists in the NodeList returned by executing xpath on the policies file. Note that CompareNodeWithRegExXML checks against the xml.external.filename. The behavior is reverse in this operation. This operation iterates through all the children of the node from xml.external.filename and makes sure each one of them is present in the NodeList from XPath.

Table B-30 ExistsRegExXMLCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should contain all the children of the node derived from xml.external.filename and xml.external.search.xpath.

xpath.namespace.prefixes

-

-

xml.external.filename

String value to check against.

"Ensure MessageProcessingInstruction is populated fully in ReqABM_to_EBM xsl".

xml.external.search.xpath

-

-

xml.node.match.mode

-

1: (NODE_MUST) This is the default option. All the elements are considered for comparison. Any missing elements are reported for non-compliance.

2: (NODE_IGNORE). If xml.node.match.mode is specified as 2, then missing nodes are not considered for comparison. For example, consider an XML structure with A as a parent and B and C as children (<A><B/><C/></A>). When xml.node.match.mode=1 and if node B or C is absent all together, then non-compliance is reported. If we want to change this default behavior to report a compliance, then we should specify xml.node.match.mode=2. Note that if a node is present then it should conform to the regular expression specified.

3: (NODE_OPTIONAL). This lets us pick and choose what differences we would want to ignore. We can add an attribute minoccurs="0" in any element that we would want to skip comparison when not found. For example, consider an XML structure where A is a parent element and has 2 children B and C (<A><B/><C/></A>). If we want a scenario where missing B's should be reported as compliance where as missing C's should be reported as non-compliance then this is how we can achieve it through xml.node.match.mode: <A><B minoccurs="0"/><C/></A>

xpath.notexist.ignore

-

-


NotExistsRegExXMLCheck

Iterates through children of node specified by xml.external.filename and xml.external.search.xpath. Checks if every node in NodeList returned by executing xml.external.search.xpath on xml.external.filename, does not exist in the NodeList returned by executing the XPath on the policies file. Note that this does the exact reverse of ExistsRegExXML.

Table B-31 NotExistsRegExXMLCheck

Operation Description Comments

Xpath.search

XPath for the NodeList, which has to be checked.

Every node from NodeList returned from this XPath should contain all the children of the node derived from xml.external.filename and xml.external.search.xpath.

xpath.namespace.prefixes

-

-

xml.external.filename

String value to check against.

-

xml.external.search.xpath

-

Example of this would be say we want to make sure double notifications are not sent as part of error handling. So we could check for the non-existence of certain error handling code snippets in some of the catch blocks.

xml.node.match.mode

-

See the table description for ExistsRegExXML for more information.

xpath.error.path

-

This would be helpful if we would want to show the user the node, which is not supposed to exist. For example, if we want to show the user the catch block that contains the redundant call, this is how we can do it:

<Param name="xpath.error.path" default="@faultName"/>

xpath.notexist.ignore

-

-


B.6 Available Operations for the FSExecutor

The following tables describe the available operations for the FSExecutor

FileExistCheck

Checks if a file of particular pattern exists in the selected directory.

Table B-32 FileExistCheck

Operation Description Comments

filename.search.regxpattern

Pattern of the file to be selected.

If you want to check for the existence of a config file, for example, AIAConfigurations.xml in every ABCS integration project, then you can select FileType="*" and context="ABCS" and then provide "AIAConfigurations.xml" in this param value.


FileNotExistCheck

Checks if a file of particular pattern does not exist in the selected directory.

Table B-33 FileNotExistCheck

Operation Description Comments

filename.search.regxpattern

Pattern of the file to be selected.

If you want to check for the non-existence of a local schema in every ABCS integration project, then you can select FileType="*" and context="ABCS" and then provide "*.xsd" in this param value.


FilesMatchPatternCheck

Checks if the selected file name matches a particular pattern.

Table B-34 FilesMatchPatternCheck

Operation Description Comments

filename.search.regxpattern

Pattern of the file to be selected.

If you want to check for the existence of an extension WSDL in every ABCS integration project, then you can select FileType="*" and context="ABCS" and then provide ".*(ABCSImpl)((V)[0-9]*)??.wsdl" in this param value.

filename.match.regxpattern

The pattern the file name should be checked against.

If you want to assert that the extension file selected matches a particular naming pattern, for example: ".*(ABCSImpl)Extension.wsdl"