XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL...
-
Upload
magnus-davidson -
Category
Documents
-
view
222 -
download
0
Transcript of XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL...
![Page 1: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/1.jpg)
XSD and jCAM tutorial
- Leveraging Open Standards
- XSD ingesting
- Interoperability for SOA / WSDL
- Exchange Management
David RR WebberChair OASIS CAM TC(Content Assembly Mechanism)E-mail: [email protected]://wiki.oasis-open.org/cam
![Page 2: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/2.jpg)
slide 2
Overview
Open Public Standard - OASIS Content Assembly Mechanism (CAM) XML instance handling rules technology
Designed for Exchange Interoperability Augments W3C XSD – fills in the gaps Easier WYSIWYG format than XSD syntax jCAM Eclipse editor environment provides
convenient set of tools Each tool component built with XSLT
scripts Available as Open Source on SourceForge
![Page 3: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/3.jpg)
slide 3
Creating a Package for Interoperability
Step 1 - Ingest XSD – extract rules, structure, annotations
Step 2 - Select & mark out your use model in visual editor
Generate and save your “want list” selections
Step 3 - Generate your XSD schema subset (WSDL) Step 4 - Generate rich live test data examples
(complete with content hints / pass / fail / random options)
Run rules engine - verify operation and outcomes
Step 5 - Build tabular documentation of structure elements and rules
Package and Share with exchange partners
![Page 4: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/4.jpg)
slide 4
Partner Conformance Testing
Test andCertification
Validate
Templates
Report
PartnerUses &Creates
Results
Test
Pass / Fail
XMLhtml
32
4
Test Cases
XML
Package
StructureRulesContextExamplesDocumentation
Publish
1
Verify Result Outcomes
XML
LocalizationContent
Hints
![Page 5: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/5.jpg)
slide 5
Interoperability check-list:
XSD schema structure model
CAM template + rules (deterministic)
Documentation of use patterns (aka “want list” +
subset XSD)
Test cases and examples (pass/fail)
Content hinting (localization)
Validation engine for unit and regression testing
Open standard, open platform and open source
allows consistent agreements between participants
![Page 6: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/6.jpg)
slide 6
UML
IEPD Package Contents
Templates
StructureRulesContextVocabulary
XML Schema
2
1
3
CAM Template
XSDDomainSchemasModels
4
Documentation(Word / PDF / OpenDocExcel / HTML)
PurposeDescriptionsTablesDiagrams
Want List in XMLXSD subset
XMLLocalizationto Requirements
Examples & Test CasesGenerated ConformanceSuite
XMLXMLXMLXML
5
Generate, Manage and Test 1) thru 4) above
* IEPD – Information Exchange Package Documentation
![Page 7: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/7.jpg)
slide 7
Challenge: XSD is non-deterministic! The schema contains the superset of every exchange
component variation
XSD does not have direct context mechanisms
Hence people make everything in schema optional
Dependencies are not clear
It is difficult to understand the constructs and to
document the rules clearly for business users to verify
It is hard to create test cases and instances (the “want
list” tough to visualize)
Disconnect between XML data types and legacy data –
e.g. dates, telephone formats, post codes
![Page 8: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/8.jpg)
Interoperability for SOA and
WSDL exchanges
Creating an Information Exchange Package
Documentation (IEPD) Package
![Page 9: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/9.jpg)
slide 9
Tutorial
Ingesting XSD schema step by step example
Documenting the Exchange Patterns Creating “want list” selections
Subset XSD generation (for WSDL)
Documentation reporting options
Testing and Conformance Creating Test Case examples
Content Hinting
Running Test Cases
Advanced Techniques
![Page 10: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/10.jpg)
Ingesting XSD Schema
Using jCAM editor Wizard
(http://www.jcam.org.uk)
![Page 11: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/11.jpg)
slide 11
Ingesting XSD to CAM template format
Exchange xmlExchange xml
*Exchange xsd*Exchange xsd
*Extension xsd*Extension xsd
*Code listxsd
Namespace
* Optional
XML Schema
xsd subsetxsd subset *Constraint xsd*Constraint xsd
INGESTINGEST
Structure
Rules
Documentation
XSLT toolsprocess
entire XSDcollection
XSLT toolsprocess
entire XSDcollection
CAM = Content Assembly Mechanism
XSD Collection
![Page 12: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/12.jpg)
slide 12
Step 1 & 2 – Pick the XSD schema to ingest
1
Choose Menu Option
2
Specify XSD Locations
Pick XSD
First location is the rootfolder for the XSD collection.
Typically this is the same as the location for the XSD schema you want to ingest.
(Complex XSD can have this separate; hence need for option)
![Page 13: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/13.jpg)
slide 13
Resolving XSD schema import / includes
Normally the wizard should figure this all out for you
Complex XSD can have deeply nested “trees” of imported definitions and type “libraries” of other XSDs – that may be elsewhere than the current folder for your particular XSD
Tip: If the ingesting fails – repeat step 1 – but re-specify location for where your XSD collection is to be found
![Page 14: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/14.jpg)
slide 14
Step 3 – Choose the XSD parent element
From the dropdown list pick the correct root element you wish to use.
XSD’s may have more than one collection in them (as shown here) or may not have the parent node element cleanly defined.
The Wizard shows you the list of all possible ones it finds – so you can select and confirm the right one.
3
Choose XSD parent element
Confirm and start the XSD ingesting
![Page 15: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/15.jpg)
slide 15
Advanced Options
Internal log message level – 1 is critical messages only, thru 4 which is “all”. Use this for debugging.
Annotations mode – text or all
Generation Mode -
![Page 16: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/16.jpg)
slide 16
Step 4 – Ingesting complete – Save Results
4
Completed template is loaded and save dialogue appears
Processing usually takes a few seconds.
Complex XSD can take over an hour to process however.
Tip: jCAM runs the ingesting as a background task – so you can continue to use the computer while such long ingesting is proceeding.
![Page 17: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/17.jpg)
slide 17
Step 5 – Review ingested structure
5
Completed template is shown in the structure navigator panel for review and editing
Template contains all the default content model and structure rules ingested from the XSD.
All annotations and documentation from XSD also ingested (show as “paperclip” symbol).
Code lists and typical content values inserted for easy visual reference.
![Page 18: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/18.jpg)
Documenting the Exchange Patterns
“Want lists”, documentation and XSD subset generation
![Page 19: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/19.jpg)
slide 19
Building a Want List
MARK WHATIS NOT
NEEDED
MARK WHATIS NOT
NEEDED
Structure
Rules
Documentation
Make Want List
DESIRED RESULTS
Structure likely
extensive!!!
Exclude what is
not needed
![Page 20: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/20.jpg)
slide 20
Marking Items for exclude - want list
Can exclude at all levels within the structure excludeTree() excludeElement() excludeAttribute()
Use XPath operators to control scope: Specific node Group of nodes Anywhere occurs in structure Contextually based on condition
![Page 21: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/21.jpg)
slide 21
Using Editor to mark exclude items
Structure Editor Tools
Select focus on item
Invoke action menu (right mouse click)
Pick action
Tip: exclude rule display is context sensitive and only works on optional items
![Page 22: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/22.jpg)
slide 22
Export and Save completed Want List
File Menu Option
Select Export and specify filename of destination.
Excluded items are designated with red “dot” in structure editor and no bold highlight
![Page 23: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/23.jpg)
slide 23
Want List Details
EXCLUDE FLAGVALUE
(Exported Example)
Want Lists provide a handy way to catalogue the exchange model and can be re-used later by importing into other templates
![Page 24: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/24.jpg)
Generating Testing and
Conformance Examples
Selecting valid and invalid modesCustomizing content with Hints
![Page 25: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/25.jpg)
slide 25
Example Generation Options
![Page 26: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/26.jpg)
slide 26
Content Hinting Mechanisms
![Page 27: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/27.jpg)
Documentation
Default reporting options
![Page 28: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/28.jpg)
slide 28
Documentation Options
Documentation is designed to make rules and use patterns clear
jCAM editor uses XSLT and HTML for documentation generation
Each documentation option can be customized as desired
Preferences allow overriding of default documentation style sheets
![Page 29: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/29.jpg)
slide 29
Documentation MenuDocumentation Menu Option
Select Format, resulting HTML opens in browser viewer
![Page 30: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/30.jpg)
slide 30
Tabular HTML Documentation Layout
EnhancedData typeLogic
Extended Code listhandling
Clear use pattern
XPath referencesandfunctions
![Page 31: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/31.jpg)
Advanced Techniques
Using XPath selector wizard Tailoring the content definitions Sharing code lists Extending rules for actual use cases Structure context variations Handling ingestion issues Examples Hint System
![Page 32: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/32.jpg)
slide 32
Next Steps – Tailoring to Application Needs
Emergency Response Services Workflow using OASIS EDXL exchanges
![Page 33: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/33.jpg)
slide 33
Illustrative EDXL requirements
When AdultICU Bed type > 0 - AND Triage Quantity > 5
Require Facility State = CA, NV, NM
When Admissions Total > 50 - AND Deaths > 0
Outbreak alerting
Facility Matching
Region Restriction
![Page 34: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/34.jpg)
slide 34
Template rules syntax
<as:BusinessUseContext> <as:Rules> <as:default> <as:context>
<as:constraint condition="//Activity24Hr /Admissions > 50
and( // Activity24Hr /Deaths > 0)" action="restrictValues(// Activity24Hr /Admissions, ‘Alert – possible outbreak’) "/>
<as:constraint action="restrictValues(//ns5:AdministrativeArea /ns5:NameElement , 'CA|NV|NM')"/>
</as:context> </as:default> </as:Rules> </as:BusinessUseContext>
![Page 35: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/35.jpg)
Resources
Selection of useful links and additional technical details
![Page 36: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/36.jpg)
slide 36
“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)
![Page 37: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/37.jpg)
slide 37
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
Resources:
![Page 38: XSD and jCAM tutorial - Leveraging Open Standards - XSD ingesting - Interoperability for SOA / WSDL - Exchange Management David RR Webber Chair OASIS CAM.](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649d975503460f94a814ad/html5/thumbnails/38.jpg)
slide 38
A special mention for our contributors to the CAM and jCAM work:
UK - Martin Roberts and team from BTplcUS - Michael Sorens for review and testing
Credits: