380 likes | 518 Views
XML Validation for NIEM An Executive Briefing. Exchange Development. Deploy. Requirements. CAMV. Mo del Data. Test. NIEM Team, Oracle Public Sector. Build Exchange. Generate Dictionary. Technology Introduction – September 2011.
E N D
XML Validation for NIEM An Executive Briefing Exchange Development Deploy Requirements CAMV Model Data Test NIEM Team, Oracle Public Sector Build Exchange Generate Dictionary Technology Introduction – September 2011
The following is not intended to outline Oracle general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. DisclaimerNotice
XML Validation Introduction A key need in working with XML information exchanges, is developing examples and matching templates including rules, context, and roles for correctly managing information exchange content between partners. The W3C Schema by themselves are not sufficient. Open sharable test suites are essential part of production quality exchange development – proven to save implementers time and resources A flexible XML Validation Framework is essential – in live production system the unexpected is the norm. Having a dynamic rule-based approach allows rapid tailoring that smoothly keeps applications operational. Documentation that allows verification by business analysts can ensure the production system matches policy needs.
Exchange Delivery Lifecycle Component Dictionary Drag and Drop Visual Editor XML Exchange Design Template Updates Design • CAM Editor • CAMV • Engine Monitor Author Test CAM Template XML Samples Deploy XSD Schema Production Log Results XMI / UML Models Compiled XML Exchange Templates XML Exchange Validation Documentation
CAMV - The Best XML Validation Available • Cross-field validation rules • Dynamic structure components • Error and warning level reporting • XPath V2.0 rules for extended business logic • Extensible rule templates with schema-aware validations • Clear business documentation for policy analyst verification • Code lists and SQL table lookups with conditional rules • Open source with open platform deployment • Public open standards based from W3C and OASIS • High performance thread safe execution engine • Dynamic template driven deployment framework • Spring API compatible for middleware integration • Ant scripting for test suite implementations • Flexible result rendering, routing and reporting
What is new in CAM toolkit release V2.1? • SQL table lookups and visual configuration wizard • Improved code lists handling visual wizards • Enhanced Ant scripting for easier test suite development • CAMV enhancements • Spring API enabled for middleware integration • Improved engine validation performance • Better memory management • Validation results reporting cleaner and more consistent
Key Points for NIEM implementers • Accelerate IEPD partner implementation with test suites • Go directly from IEPD to deployment for XML validation • SQL table lookups integrate directly into validation • Improve your code lists handling and sharing • Open standards and open source based solution enables community shared resources • Cross-platform deployment • Directly supports NIEM Exchange Delivery Lifecycle
Exchange Development Deploy Requirements CAMV Model Data Test Summary Build Exchange Generate Dictionary Review Next Steps Future enhancements Resources and Links
Value Proposition Testing and verification of your exchange XML examples SQL database lookups and flexible code lists handling Extended business rule checking Flexible validation outcomes with warnings not just errors Regression testing with batch processing scripts Flexible deployment of XML validation framework Integration via Spring API to middleware Easily sharable with your implementation partners The best available XML exchange validation tools
What are we working on? • Improvements • “CAM for web services” – extending from exchange-centric • Enhancing ANT capabilities with soapUI integration • New features • Exchange dictionary management enhancements • Evaluation tools for dictionaries and components • Enhancing XML example generation with synthetic data
Links and References MAIN SITE - http://cameditor.org NIEM MATERIALS - Oracle NIEM website http://www.oracle.com/goto/niem Oracle XMLOrb blog site http://blogs.oracle.com/xmlorb
Exchange Development Deploy Requirements CAMV Model Data Test XML Validation Framework Part 2 – Technology Overview Build Exchange Generate Dictionary Approach, Architecture and Deployment
Standard Pattern for Business Rules CAM rules template approach fully supports these criteria Claim – An English statement of a business rule that conveys its meaning.Example: A Chapter MUST have a Title. Test – A formal statement of a business rule that can be parsed and processed by machine.Example: <Assert test="count(para) >=1"> Diagnostic – An English statement that identifies and explains what happened or was found when a Test fails.Example: Chapter "X" does not have a Title. Outcome – Error, Warning, Pass
CAM - Controlling Scope and Context Condition controls if and when the content rule action applies Condition can control structure as well; optional, mandatory, exclude Condition can reference different component(s) for contextual rule actions
CAMV Validation Engine • Standalone XML validator using XPath rules • Context aware and declarative rules approach • Integrated with CAM editor menus for instant testing • External code list and SQL table lookup support • Callable via Spring framework or Java API; thread safe and server container deployable • Configurable error levels – error, warning • Java error results object returned • Embedded validation results attributes in XML results
CAMV CAM Editor XSLT CAM Editor / CAMV Environment Single XML Test Instance Reports XML Validation Result CAM Editor CAM template
CAMV Post-Validation Actions CAMV Spring Framework XML Exchange Delivery stream XML Validation Result Memory Object Middleware CAM template(s) Thread safe container based deployment architecture
CAMV XSLT CAMV / ANT Script Environment CAM template(s) Reports CAMV Control Script XML XML Test Instances ANT 2 XML Validation Results 1
Exchange Development Deploy Requirements CAMV Model Data Test Technology Snap Shot Build Exchange Generate Dictionary Example CAM templates Running CAMV validations Results handling techniques Summary
Available Test Suite Examples Experimental SAR Examples OASIS EML V7 – UOCAVA Testing • Set of test examples for Election Management: • Both individual test cases and folder based multiple examples • Each test uses different template and validation scenario * SAR – Suspicious Activity Report NIEM exchange * EML – Election Markup Language Standard • Two test example templates and XML instances: • Baseline SAR with just structure and content usage rules, schema parlance “cardinality, facets and enumerations” • Baseline SAR advanced – logical business rules added to check consistency of information and structure components • Each test set contains examples that pass and those that fail depending on the template validation applied
Experimental SAR Overview • Areas of Interest: • Drugs • Fraud • Gangs • Internet • Pornography • Prostitution • Property • Community • Weapons/Chemicals • Prescriptions • Travel/Immigration • Terrorism * SAR – Suspicious Activity Report
Exchange Development Deploy Requirements CAMV Model Data Test Running CAMV Validation Build Exchange Generate Dictionary Illustrative examples – pass, fail, warnings Default structure handling Data type and Content checking Cross-field validation rules SQL database lookup
Example Advanced Rules Business Rule: Providing warning if PurgeDate is earlier than PurgeReviewDate <as:constraintcondition="//sbl:PrivacyDetails/sbl:PrivacyPurgeDate < //sbl:PrivacyDetails/sbl:PrivacyPurgeReviewDate"action="printMessage(//sbl:PrivacyDetails/sbl:PrivacyPurgeReviewDate,Warning: Review date not before purge date)"><as:annotation/></as:constraint> Business Rule: Location must contain an address or a highway or coordinate set <as:constraintcondition="not(./nc:LocationAddress) and(not(./nc:LocationHighway)) and(not(./nc:LocationTwoDimensionalGeographicCoordinate))"action="printMessage(//j:TargetLocation/sbl:Location,Empty Location information)"><as:annotation><as:documentationtype="documentation">Example of advanced rule</as:documentation></as:annotation></as:constraint>
Running CAMV details Batch Command Line Execution Window Viewing Same Template in Visual Editor • From within the Test Suite folder on the command line execute > Ant runALL
Sample SQLDB Test Run • Start the database instance • From within the Test Suite folder on the command line execute > Ant runALL
DB lookup test results rendered as HTML SQL DB lookup result
Exchange Development Deploy Requirements CAMV Model Data Test CAM Editor Visual Tools Build Exchange Generate Dictionary SQL lookup entry wizard Run CAMV validation wizard Visual entry of SQL connection details Visual review of validation results
CAM template SQL lookup rule definition This is the myLists.cam example template
Test from CAM Editor validation Run Wizard Pick test case XML file 1 Choose JDBC driver Confirm driver name 2 3 Replace default connection with actual JDBC string 4 NOTE: this is the same information as contained in the dbProp.props file jdbc:derby://localhost:1527/firstdb
Sample Visual Test Results SQL lookup result displayed
Exchange Development Deploy Requirements CAMV Model Data Test Summary Build Exchange Generate Dictionary Review Resources and Links
CAMV Summary • Open source, open public standards based, cross-platform deployment written using Java • Uses Java APIs, Spring API, JDOM, etc. • Validation features: • XPath V2.0 support • Looks ups • 20 built-in functions • Reporting • Embedded CAMERROR, CAMWARN tags • Spring API and results set handler • Optional sysout test result log
Links and References DOWNLOADS - http://cameditor.org/ #CAMV_Testing NIEM MATERIALS - Oracle NIEM website http://www.oracle.com/goto/niem Oracle XMLOrb blog site http://blogs.oracle.com/xmlorb