Quick CAM Tutorial

150 downloads 20955 Views 7MB Size Report
Advanced features. David RR Webber ... (Note: this is NOT the XSD schema tutorial – if you want that one go here: http://www.oasis-open.org/committees/ download.php/30607/XSD%20and%20jCAM%20tutorial.pdf ) ...
Quick XML Content Exchange Tutorial - Making your exchange structure - Creating template and rules - Exporting test examples - Documentation, schema and more - Advanced features David RR Webber Chair OASIS CAM TC (Content Assembly Mechanism) E-mail: [email protected] http://wiki.oasis-open.org/cam

Overview 

  

Aim is to show how to quickly put together a content assembly package for an information exchange using XML Build all the pieces needed to manage, document and validate your information Cool stuff and tips on making your exchange successful Summary and Resources

(Note: this is NOT the XSD schema tutorial – if you want that one go here: http://www.oasis-open.org/committees/download.php/30607/XSD%20and%20jCAM%20tutorial.pdf ) slide 2

Use Case 

Inauguration tickets exchange  XML structure for ticket availability, location and price  Allows websites to pull latest details in XML, or post new ticket and event details

 

How to develop a CAM template for ticket exchanges Open sourced world is facilitated when people collaborate using common mechanisms and definitions

slide 3

Approach 

Iteratively build the content assembly    



Complete the exchange package    



Create a base XML structure Add your rules and constraints Generate some working examples Refine with hints, documentation and extensions Documentation Test cases Generate XSD schema Dictionary

Advanced features  International code lists  Extended content handling rules  Wiki output slide 4

How it works in a nutshell Exchange Definition

CAM Template

Structure XSLT XSLTtools tools process process template template

Rules

2

Samples – build examples & test cases

3

Documentation (Excel / HTML)

4

Collaboration components dictionary checklist

1 Generate Generate

Documentation

5

Programming exchange XSD schema

XSD CAM = Content Assembly Mechanism

slide 5

7 Steps to Success!       

Step 1 – Create XML layout of content Step 2 - Select & detail your use model in visual editor Step 3 - Generate your documentation for structure elements and rules Step 4 - Generate test data examples and check with validator Step 5 – Output the programmer XSD schema Step 6 – Build dictionary of core components Step 7 - Package and share with community slide 6

Tutorial – Step 1

Introducing the XML Tickets Example Creating the base template

Tickets XML

slide 8

Load in XML and save results template 1 Select template from XML option

2

Load completed, Save template

slide 9

Tutorial – Step 2

Select and detail model Add use pattern rules Refine content model Template Validator

Reviewing and Enhancing Model Completed template is shown in the structure navigator panel for review and editing

1 Select duplicate item(s)

2 Open pop-up menu (right click) Select Delete item action

Template contains all the default content model and structure rules loaded from the XML. You can now proceed to clean up and refine the model – deleting redundant items, then adding new items as desired.

slide 11

Add use pattern rules Select and assign use pattern rules as needed

3

Each component in the model may be optional, required or repeatable. Each of these rules can be quickly assigned accordingly.

slide 12

Adding content type constraint rules Select Event Date – add date mask constraint rule

4 XPath target automatically made by wizard Pick desired date format details – MM/DD/YYYY

slide 13

Restrict ZIP code to 5 digits Select Event Zip – add number mask constraint rule

5 XPath target automatically made by wizard Pick desired number format details

slide 14

Limit State code values Select Event State – add restrictValues() constraint rule

6 XPath target automatically made by wizard Add desired values

slide 15

Adding New Domain Elements 7 Select root element node in structure; right mouse click for context menu; select “Add Namespace”; then enter prefix and URI

8

Select element node in structure; right mouse click for context menu; select “Add Child Attribute / Element”; then enter prefix and name

This example is for a XML that makes heavy use of namespaces (not the tickets XML)

slide 16

Run Template Validator – checks for errors • •

This option runs an analysis of your template and reports potential problems that it finds Also shows useful statistics about your template

Tools Menu Option

slide 17

Tutorial – Step 3

Add annotation notes Generate documentation Inspect and verify

Adding annotation notes

Select focus on structure item; invoke action menu (right mouse click)

1 3

Enter text into Definition tab

2 Choose “Edit Annotations”

slide 19

Documentation Layouts 

Layout options    



 

Source XML Component details (XML) Tabular format (HTML) Interactive web page (wiki)

Tabular format page layout for data analyst use and designed to make rules and use patterns clear Wiki format for collaborative web use Each documentation layout XSLT script can be customized as desired slide 20

Tabular Documentation Documentation Menu Option Select Format, resulting HTML opens in browser viewer

slide 21

Tabular HTML Content Details Clear use pattern

Extended Code list handling Annotations

XPath references and functions

Enhanced Data type Logic slide 22

Open Documentation Mechanism CAM Template XML (CXF)

Documentation Generator XSLT script

  

customizable

HTML Report Pages

CSS style sheet

Visual editor runs XSLT on template to output results as HTML document External CSS style sheet controls HTML content formatting, colors, fonts. Editor Preferences menu allows overriding of default documentation style sheets slide 23

Tutorial – Step 4

Generate test data examples Run validation checker Add content hints

Test Case Generation Quick Start File Menu Option

Default directory to write examples into

Name to be used for the examples How many examples to create Repeating elements count

for Quick Test – just click “OK” to use default settings

slide 25

Test Case Results

Active links to view the generated examples

slide 26

Advanced Generation Options Optional schema file validation link; use this to have example validate with schema or sub-set schema Use content type or item name (name is useful for checking backend transform processing)

Use namespaces or not; if ‘false’ is selected – then XML instances are created with minimized namespace usage.

How to handle optional items: all | random | none If you want deliberate errors for fail testing; (will give variety of data and structure errors)

Optional content hints (explained next )

Use slider to pick a specific seed value – or leave blank for random seed slide 27

Test Case Generator Feature Summary 

Make both Pass / Fail testing examples



Content hinting so examples use real not fake data



Test optional item logic with: all / random / none



Uses exclude() assertions so does not include those items – makes realistic examples of your use pattern



Can pass in seed value – use when adding and testing hints (each test case is labelled with its seed value)



Make hundreds of test cases without manual editing



Can link test case to XSD schema for structure tests



You can modify XSLT to meet own testing needs slide 28

Run Validation Checker on Examples Run Menu Option / JCAM validation engine

1 Pick Test Case Example to VALIDATE; click Finish to run validation rules

2

Review validation results

3

slide 29

Content Hinting Mechanisms   

Designed to create realistic data examples Hints can be provided in two ways SIMPLE (shown next)  using ‘Value’ notes in annotations on specific items in the structure editor



ADVANCED (see advanced section)  create your own Hints XML file and add matching rules to apply to your template(s) – e.g. FirstName, LastName, Address, BirthDate, etc.



Can export from one template, import into another slide 30

First Approach: annotation Value Hints Select focus on structure item Invoke action menu (right mouse click) Choose “Edit Annotations”

[ This example is for EDXL Hospital Status reporting (not the tickets XML) ]

slide 31

Then add Value annotation item 3

Select “Value” tab

2 4 Enter values terminated with “|” character

1

Click on “Add New”, then enter “Value” as Type and confirm “OK”

5

Re-run Example export to see results

slide 32

Tutorial – Step 5

Output programmer XSD schema

Generating XSD schema File Menu Option Select Export CAM as XSD menu option

Confirm the location and filename, and namespace mode.

1

2

Select ‘false’ for namespace use will minimize the use and requirement for namespaces in the subset schema and corresponding XML instance documents. slide 34

Schema XSD generated Set of XSD files with filename and namespace suffix Each namespace file is import for those specific type definitions

Reviewing XSD results in a schema editor tool

3 Tickets information model output in XSD schema syntax

slide 35

Tutorial – Step 6

Build component dictionary Load as Excel spreadsheet

Dictionary Tools    

Generate a dictionary of components used by your template Merges annotations and type definitions from template into dictionary Separate dictionary content by namespace Produce spreadsheet workbooks

slide 37

Create Dictionary Select Dictionary; empty for new create, or existing for merge

Output dictionary filename Select template content namespace to match with Merge mode; use true to combine content

slide 38

Open Dictionary as Spreadsheet

slide 39

Format, Edit and Save Spreadsheet    

Use spreadsheet tools to format columns as desired Manually review and confirm details Make updates and edits as needed Save from Excel to XML; update to dictionary

slide 40

Tutorial – Step 7

Package and Share Conformance Testing

Package Contents Review XML Schema

1

5



2

Documentation (Word / PDF / OpenDoc Excel / HTML)



3

Dictionary



4

Examples & Test Cases

(XML / Excel)

CAM Template

Structure Rules Context Vocabulary Dictionary



Templates slide 42

Partner Conformance Testing Publish

Structure Rules Context Examples Documentation Dictionary

XML Templates Package

Test Cases

2

3

1 Validate

Report html

4

XML

Test

Localization Content Hints

Testing, Agreement / Alignment.

Results

Verify Result Outcomes

Partner Uses & Creates

XML Pass / Fail slide 43

Summary

Review of capabilities

Summary 

Capabilities covered        

 



Loading XML structure Refining structure and content model rules Generating documentation Generating test examples Hints system Generate XSD schema Running tests Generating component dictionary

Applicable to board range of domains and schemas Enhanced interoperability through consistent method, testing and shared clear exchange package definitions Enables SOA implementations slide 45

Advanced Features

Using Hints file mechanisms Using Code Lists lookup Using Extended Rules

Hints File Mechanism (XML file) 1

like / with partial name matching use for component match on items – e.g. first with name matches

2

key matching on tag name use for exact match of items

3

key / parent path matching use when same name occurs within different parents – e.g. Country and Person / NameElement with different content and context

Note: matching is case sensitive but ignores namespaces TIP: can use Export Hints to create initial XML file for editing

slide 47

A- Using Examples Generator with Hints

Select XML hints file to be used here slide 48

B- Import Hints into Annotations (merge)

set and select as needed Option to autoreload new anno file into current template slide 49

External Code list lookup Access External Lists tool

1

Import or Create New code list

2

Review, filter or 3 update list values

4

Add lookup() action to structure item and reference code list name

slide 50

Advanced Rule Considerations 

The CAM template allows full use of XPath conditional expressions and a rich set of over 30 functions including:  setNumberRange(), setLength(), setValue(), setLimit(), setDateMask(), makeRepeatable(),restrictValues(),excludeTree()





Those that are compatible with XSD constraints will cause constraint schema assertions to be written out when exporting to schema Mapping business functional rules to XPath constraint rules slide 51

Illustrative EDXL requirements 

When AdultICU Bed type > 0 Facility Matching - AND Triage Quantity > 5



Require Facility State = CA, NV, NM Region Restriction



When Admissions Total > 50 - AND Deaths > 0 Outbreak alerting

slide 52

Template rules syntax



slide 53

XPath selector wizard XPath syntax is automatically generated for you

Check boxes allow user to select scope of rule action Conditional context rules can be optionally used

Documentation notes can be added here

slide 54

Resources / Software

Selection of useful links and additional technical details

Resources: www.jcam.org.uk wiki.oasis-open.org/cam www.oasis-open.org/committees/cam docs.oasis-open.org/cam www.oasis-open.org/committees/emergency www.niem.gov

slide 56

SourceForge XSLT svn repository 

Using any svn client the XSLT scripts can be retrieved from:  https://camprocessor.svn.sourceforge.net/svnroot/camprocessor/ camed/uk.org.jcam.camed/trunk/xsl/

slide 57

“CAM Kit” of XSLT tools used 

XSD 2 Schema  expands original target schema resolving imports and includes



XSD 2 CAM  extracts structure and rules and builds template from schema



XML 2 Wantlist  builds want list from any XML instance (uses Level Depth setting)



CAM 2 Examples  Generates a collection of XML instance test cases



Import/Export Hints  Manage and apply content hinting across CAM templates



CAM 2 XSD export  Creates a subset XSD from CAM template (applies want list)



CAM 2 Dictionary  Merge core components into dictionary by namespace slide 58

Credits: A special mention for our contributors to the CAM and jCAM work: UK US

-

Martin Roberts and team from BTplc Michael Sorens for review and testing

slide 59