13.07.2015 Views

Introduction to XML and native XML technologies on the IBM ...

Introduction to XML and native XML technologies on the IBM ...

Introduction to XML and native XML technologies on the IBM ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>Introducti<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>to</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>native</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g><strong>on</strong> <strong>the</strong> <strong>IBM</strong> MainframeSusann Thomas, Client Technical Professi<strong>on</strong>al for Software <strong>on</strong> System zSusann.Thomas@de.ibm.com© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNoticesThis informati<strong>on</strong> was developed for products <str<strong>on</strong>g>and</str<strong>on</strong>g> services offered in <strong>the</strong> U.S.A.Note <str<strong>on</strong>g>to</str<strong>on</strong>g> U.S. Government Users Restricted Rights — Use, duplicati<strong>on</strong> or disclosure restricted by GSA ADP Schedule C<strong>on</strong>tract with <strong>IBM</strong> Corp.<strong>IBM</strong> may not offer <strong>the</strong> products, services, or features discussed in this document in o<strong>the</strong>r countries. C<strong>on</strong>sult your local <strong>IBM</strong> representative for informati<strong>on</strong> <strong>on</strong> <strong>the</strong> products <str<strong>on</strong>g>and</str<strong>on</strong>g> services currentlyavailable in your area. Any reference <str<strong>on</strong>g>to</str<strong>on</strong>g> an <strong>IBM</strong> product, program, or service is not intended <str<strong>on</strong>g>to</str<strong>on</strong>g> state or imply that <strong>on</strong>ly that <strong>IBM</strong> product, program, or service may be used. Any functi<strong>on</strong>allyequivalent product, program, or service that does not infringe any <strong>IBM</strong> intellectual property right may be used instead. However, it is <strong>the</strong> user's resp<strong>on</strong>sibility <str<strong>on</strong>g>to</str<strong>on</strong>g> evaluate <str<strong>on</strong>g>and</str<strong>on</strong>g> verify <strong>the</strong>operati<strong>on</strong> of any n<strong>on</strong>-<strong>IBM</strong> product, program, or service.<strong>IBM</strong> may have patents or pending patent applicati<strong>on</strong>s covering subject matter described in this document. The furnishing of this document does not give you any license <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong>se patents. You cansend license inquiries, in writing, <str<strong>on</strong>g>to</str<strong>on</strong>g>: <strong>IBM</strong> Direc<str<strong>on</strong>g>to</str<strong>on</strong>g>r of Licensing, <strong>IBM</strong> Corporati<strong>on</strong>, North Castle Drive Arm<strong>on</strong>k, NY 10504-1785 U.S.A.The following paragraph does not apply <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> United Kingdom or any o<strong>the</strong>r country where such provisi<strong>on</strong>s are inc<strong>on</strong>sistent with local law: INTERNATIONAL BUSINESS MACHINESCORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties incertain transacti<strong>on</strong>s, <strong>the</strong>refore, this statement may not apply <str<strong>on</strong>g>to</str<strong>on</strong>g> you.This informati<strong>on</strong> could include technical inaccuracies or typographical errors. Changes are periodically made <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> informati<strong>on</strong> herein; <strong>the</strong>se changes will be incorporated in new editi<strong>on</strong>s of <strong>the</strong>publicati<strong>on</strong>. <strong>IBM</strong> may make improvements <str<strong>on</strong>g>and</str<strong>on</strong>g>/or changes in <strong>the</strong> product(s) <str<strong>on</strong>g>and</str<strong>on</strong>g>/or <strong>the</strong> program(s) described in this publicati<strong>on</strong> at any time without notice.Any references in this informati<strong>on</strong> <str<strong>on</strong>g>to</str<strong>on</strong>g> n<strong>on</strong>-<strong>IBM</strong> Web sites are provided for c<strong>on</strong>venience <strong>on</strong>ly <str<strong>on</strong>g>and</str<strong>on</strong>g> do not in any manner serve as an endorsement of those Web sites. The materials at those Web sitesare not part of <strong>the</strong> materials for this <strong>IBM</strong> product <str<strong>on</strong>g>and</str<strong>on</strong>g> use of those Web sites is at your own risk.<strong>IBM</strong> may use or distribute any of <strong>the</strong> informati<strong>on</strong> you supply in any way it believes appropriate without incurring any obligati<strong>on</strong> <str<strong>on</strong>g>to</str<strong>on</strong>g> you.Informati<strong>on</strong> c<strong>on</strong>cerning n<strong>on</strong>-<strong>IBM</strong> products was obtained from <strong>the</strong> suppliers of those products, <strong>the</strong>ir published announcements or o<strong>the</strong>r publicly available sources. <strong>IBM</strong> has not tested those products<str<strong>on</strong>g>and</str<strong>on</strong>g> cannot c<strong>on</strong>firm <strong>the</strong> accuracy of performance, compatibility or any o<strong>the</strong>r claims related <str<strong>on</strong>g>to</str<strong>on</strong>g> n<strong>on</strong>-<strong>IBM</strong> products. Questi<strong>on</strong>s <strong>on</strong> <strong>the</strong> capabilities of n<strong>on</strong>-<strong>IBM</strong> products should be addressed <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong>suppliers of those products.This informati<strong>on</strong> c<strong>on</strong>tains examples of data <str<strong>on</strong>g>and</str<strong>on</strong>g> reports used in daily business operati<strong>on</strong>s. To illustrate <strong>the</strong>m as completely as possible, <strong>the</strong> examples include <strong>the</strong> names of individuals, companies,br<str<strong>on</strong>g>and</str<strong>on</strong>g>s, <str<strong>on</strong>g>and</str<strong>on</strong>g> products. All of <strong>the</strong>se names are fictitious <str<strong>on</strong>g>and</str<strong>on</strong>g> any similarity <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> names <str<strong>on</strong>g>and</str<strong>on</strong>g> addresses used by an actual business enterprise is entirely coincidental.COPYRIGHT LICENSE:This informati<strong>on</strong> c<strong>on</strong>tains sample applicati<strong>on</strong> programs in source language, which illustrates programming techniques <strong>on</strong> various operating platforms. You may copy, modify, <str<strong>on</strong>g>and</str<strong>on</strong>g> distribute <strong>the</strong>sesample programs in any form without payment <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>IBM</strong>, for <strong>the</strong> purposes of developing, using, marketing or distributing applicati<strong>on</strong> programs c<strong>on</strong>forming <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> applicati<strong>on</strong> programminginterface for <strong>the</strong> operating platform for which <strong>the</strong> sample programs are written. These examples have not been thoroughly tested under all c<strong>on</strong>diti<strong>on</strong>s. <strong>IBM</strong>, <strong>the</strong>refore, cannot guarantee orimply reliability, serviceability, or functi<strong>on</strong> of <strong>the</strong>se programs. You may copy, modify, <str<strong>on</strong>g>and</str<strong>on</strong>g> distribute <strong>the</strong>se sample programs in any form without payment <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>IBM</strong> for <strong>the</strong> purposes of developing,using, marketing, or distributing applicati<strong>on</strong> programs c<strong>on</strong>forming <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>IBM</strong>'s applicati<strong>on</strong> programming interfaces.2 / 128© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g>: Why it's this way• Simple (like HTML -- but not quite so simple)– Strict syntax rules, <str<strong>on</strong>g>to</str<strong>on</strong>g> eliminate syntax errors– syntax defines structure (hierarchically), <str<strong>on</strong>g>and</str<strong>on</strong>g> names structural parts(element names) → self-describing data• Extensible (unlike HTML; vocabulary is not fixed)– Can create your own language of elements (aka "tags")– Strict syntax ensures that such markup can be reliably processed• Designed for a distributed envir<strong>on</strong>ment (like HTML)– Based <strong>on</strong> Unicode text– Each <str<strong>on</strong>g>XML</str<strong>on</strong>g> parser must be able <str<strong>on</strong>g>to</str<strong>on</strong>g> parse <str<strong>on</strong>g>XML</str<strong>on</strong>g> encoded in Unicode• Can mix different data types <str<strong>on</strong>g>to</str<strong>on</strong>g>ge<strong>the</strong>r (unlike HTML)– Can mix <strong>on</strong>e set of elements with ano<strong>the</strong>r set: resulting data can still be reliablyprocessed© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> is more <strong>the</strong>n syntax analyse<str<strong>on</strong>g>XML</str<strong>on</strong>g> compatiblebrowserc<strong>on</strong>tentformatstructureXSLstylesheet<str<strong>on</strong>g>XML</str<strong>on</strong>g>documentDTDor<str<strong>on</strong>g>XML</str<strong>on</strong>g> schemao<strong>the</strong>routput formate.g. PDF, printer,display,language format , ...XSL(T) processorHTMLdocumentHTML compatiblebrowser© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> (<str<strong>on</strong>g>and</str<strong>on</strong>g> related) Specificati<strong>on</strong>s<str<strong>on</strong>g>XML</str<strong>on</strong>g> CoreCan<strong>on</strong>icalAPI‘sJDOMJAXPDOM 1DOM 2DOM 3SAX 1SAX 2StyleXPATHXSLTXSL<str<strong>on</strong>g>XML</str<strong>on</strong>g>signatureCSS 1CSS 2CSS 3SAOP<str<strong>on</strong>g>XML</str<strong>on</strong>g>-RPC<str<strong>on</strong>g>XML</str<strong>on</strong>g> 1.0Xpointer<str<strong>on</strong>g>XML</str<strong>on</strong>g>query ...XMIWDDX …Pro<str<strong>on</strong>g>to</str<strong>on</strong>g>colsXlink<str<strong>on</strong>g>XML</str<strong>on</strong>g> names<str<strong>on</strong>g>XML</str<strong>on</strong>g> SchemaUDDIeb<str<strong>on</strong>g>XML</str<strong>on</strong>g>Bizztalk<str<strong>on</strong>g>XML</str<strong>on</strong>g> baseInfosetWSDLWeb ServicesIFXRDFXHTLMLeventsXformsFin<str<strong>on</strong>g>XML</str<strong>on</strong>g>W3C recW3C draftXfragmentModularizedXHTMLFpMLIndustry std‘Open‘ stdMathMLSMIL 1 & 2dir<str<strong>on</strong>g>XML</str<strong>on</strong>g>Applicati<strong>on</strong> areasSVG…...XHTML1.0XHTMLbasic100'smore....© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoOpti<strong>on</strong>s, opti<strong>on</strong>s, opti<strong>on</strong>s!<str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing opti<strong>on</strong>s for z/OS• As <strong>the</strong> need <str<strong>on</strong>g>to</str<strong>on</strong>g> process <str<strong>on</strong>g>XML</str<strong>on</strong>g> data increases, you should underst<str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> opti<strong>on</strong>s available forh<str<strong>on</strong>g>and</str<strong>on</strong>g>ling this data format.• On z/OS, a number of parsing choices are readily available.–For Java <strong>the</strong> primary choice is <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g>4J parser, which is available in <strong>the</strong> Java SDK,al<strong>on</strong>g with <strong>the</strong> corresp<strong>on</strong>ding XSLT processor, XSLT4J.– In <strong>the</strong> n<strong>on</strong>-Java programming envir<strong>on</strong>ments, <strong>the</strong>re are a number of alter<str<strong>on</strong>g>native</str<strong>on</strong>g>s, notably:• Native built-in programming-language support exists in <strong>the</strong>Enterprise COBOL <str<strong>on</strong>g>and</str<strong>on</strong>g> PL/I products• The <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit provides an Apache Xerces-based parser called <str<strong>on</strong>g>XML</str<strong>on</strong>g>4C <str<strong>on</strong>g>and</str<strong>on</strong>g> acorresp<strong>on</strong>ding XSLT Processor called XSLT4C• <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services (z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>) provides a new base system comp<strong>on</strong>ent (forz/OS 1.7 <strong>on</strong>ward) for <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoOpti<strong>on</strong>s, opti<strong>on</strong>s, opti<strong>on</strong>s!<str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing opti<strong>on</strong>s for z/OS• These alter<str<strong>on</strong>g>native</str<strong>on</strong>g>s have various characteristics in terms of:– Functi<strong>on</strong>ality– St<str<strong>on</strong>g>and</str<strong>on</strong>g>ards support– Performancethat should be c<strong>on</strong>sidered when you are choosing a parser <str<strong>on</strong>g>to</str<strong>on</strong>g> be used for a specificsituati<strong>on</strong>.• Also, keep in mind that often <strong>the</strong>re is higher-level processing available that removes <strong>the</strong>burden of you needing <str<strong>on</strong>g>to</str<strong>on</strong>g> parse <str<strong>on</strong>g>XML</str<strong>on</strong>g> data yourself.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoKicking down <strong>the</strong> costs of <str<strong>on</strong>g>XML</str<strong>on</strong>g>• We know that <strong>the</strong> cost of <str<strong>on</strong>g>XML</str<strong>on</strong>g> processing is high, so anything that helps reduce that cost isgood news, right?• With z/OS V1R9 or higher, <str<strong>on</strong>g>and</str<strong>on</strong>g> through a PTF for V1R7 <str<strong>on</strong>g>and</str<strong>on</strong>g> V1R8, z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices is now able <str<strong>on</strong>g>to</str<strong>on</strong>g> take advantage of <strong>the</strong> lower-cost zAAPs <str<strong>on</strong>g>to</str<strong>on</strong>g> help reduce <strong>the</strong> cost ofcomputing when parsing an <str<strong>on</strong>g>XML</str<strong>on</strong>g> document.• The system does this zAAP enablement under <strong>the</strong> covers when any program calls <strong>the</strong> main<str<strong>on</strong>g>XML</str<strong>on</strong>g> parser module, GXL1PRS (GXL4PRS), or its new C/C++ equivalent service for z/OSV1R9, glxpParse().• After <strong>the</strong> parser completes its processing, <strong>the</strong> system turns off zAAP enablement.• <strong>IBM</strong> added support for zIIPs <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services (z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>) parser. With thissupport, <strong>the</strong> parser will be redirected <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> lower-cost zIIPs when running in enclave SRBmode. With respect <str<strong>on</strong>g>to</str<strong>on</strong>g> DB2, processing that can be partially directed <str<strong>on</strong>g>to</str<strong>on</strong>g> zIIPs like DB2Distributed Relati<strong>on</strong>al Database Architecture (DRDA) benefits by directing <strong>the</strong> full amount of<strong>the</strong> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services processing <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> zIIPs.• <strong>IBM</strong> added parser validati<strong>on</strong> support <str<strong>on</strong>g>to</str<strong>on</strong>g> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services, <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>to</str<strong>on</strong>g> enhance <strong>the</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS so that eligible workloads can exploit z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services.• Both of <strong>the</strong>se additi<strong>on</strong>s will exploit <strong>the</strong> ability of <strong>the</strong> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> parser <str<strong>on</strong>g>to</str<strong>on</strong>g> use zAAPs.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Batch integrati<strong>on</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g> Input Data......JavaJAXPJDOMJAXB<str<strong>on</strong>g>XML</str<strong>on</strong>g> Tookit for z/OS (C++)ParsingSchema validati<strong>on</strong>z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services (ASM)ParsingSchema validati<strong>on</strong>Enterprise COBOL & PL/IParsingSchema validati<strong>on</strong>Business logic(Java,C++,Cobol,…)DB2(<str<strong>on</strong>g>XML</str<strong>on</strong>g> orrelati<strong>on</strong>aldata)Step1: <str<strong>on</strong>g>XML</str<strong>on</strong>g> Parsing / Validati<strong>on</strong> Step 2: Business logic Step 3: Data s<str<strong>on</strong>g>to</str<strong>on</strong>g>re© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoDie <strong>IBM</strong> zEnterprise 196 und 114 Technologie wurde für Javaoptimiert70+ new instructi<strong>on</strong>s used by Java• Register high-word facility– Facilitates use of upper 32-bits of registers• Interlock facility update– Better Java c<strong>on</strong>currency• N<strong>on</strong>-destructive oper<str<strong>on</strong>g>and</str<strong>on</strong>g>s– Reduce path-length• C<strong>on</strong>diti<strong>on</strong>al-load/s<str<strong>on</strong>g>to</str<strong>on</strong>g>re– Remove expensive branches• Instructi<strong>on</strong> scheduler for Out-of-Order pipelineHardware for Java• New Out-Of-Order pipeline design• New larger cache structure• Higher clock speed (~5.2GHz)z/OS Java Unique Security Enhancements• <strong>IBM</strong>JCECCA provider support for AES Secure Keys• RAS: Provide Enhanced ICSF Excepti<strong>on</strong> H<str<strong>on</strong>g>and</str<strong>on</strong>g>ling in<strong>IBM</strong>JCECCAz/OS Unique Enhancements• JZOS 2.4.0© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoJava-centric processing of <str<strong>on</strong>g>XML</str<strong>on</strong>g>• Numerous <str<strong>on</strong>g>XML</str<strong>on</strong>g> generati<strong>on</strong>, parsing, <str<strong>on</strong>g>and</str<strong>on</strong>g> transformati<strong>on</strong> classes are available for Java.• Within z/OS, all Java processing is eligible <str<strong>on</strong>g>to</str<strong>on</strong>g> run <strong>on</strong> zAAP processors.• Java classes can run under <strong>the</strong> following products:– Native Java within z/OS UNIX– WebSphere Applicati<strong>on</strong> Server (WAS)– WebSphere Message Broker– WebSphere Process Server– WebSphere Enterprise Service Bus (ESB)– CICS TS can host <str<strong>on</strong>g>native</str<strong>on</strong>g> Java applicati<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> Enterprise Java beans– IMS can host <str<strong>on</strong>g>native</str<strong>on</strong>g> Java applicati<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> Enterprise Java beans• WAS has <strong>the</strong> ability <str<strong>on</strong>g>to</str<strong>on</strong>g> parse <str<strong>on</strong>g>and</str<strong>on</strong>g> preserve binary <str<strong>on</strong>g>XML</str<strong>on</strong>g> c<strong>on</strong>tent through MessageTransmissi<strong>on</strong> Optimizati<strong>on</strong> Mechanism (MTOM) <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-binary Optimized Packaging(XOP).• Many WebSphere products have <strong>the</strong> ability <str<strong>on</strong>g>to</str<strong>on</strong>g> initiate SOA processing using <str<strong>on</strong>g>XML</str<strong>on</strong>g>-basedSOAP <str<strong>on</strong>g>and</str<strong>on</strong>g> REST pro<str<strong>on</strong>g>to</str<strong>on</strong>g>cols.• <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing using Java is currently distinct from o<strong>the</strong>r <strong>IBM</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-enabled products.• Java <str<strong>on</strong>g>XML</str<strong>on</strong>g> does not currently employ z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services, for example.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoJava z/OS Releases• <strong>IBM</strong> 31-bit SDK for z/OS, Java Technology Editi<strong>on</strong>, V7.0.0– Build Level: August 27, 2011 - General Availability• <strong>IBM</strong> 64-bit SDK for z/OS, Java Technology Editi<strong>on</strong>, V7.0.0– Build Level: August 27, 2011 - General AvailabilityNew!Weitere Infos zum <strong>IBM</strong> Java 7 SDK:http://www.youtube.com/watch?v=wGiHFyqGfOk• <strong>IBM</strong> 31-bit SDK for z/OS, Java Technology Editi<strong>on</strong>, V6.0.1– Build Level: April 19, 2011 - SDK601 FP1• <strong>IBM</strong> 31-bit SDK for z/OS, Java 2 Technology Editi<strong>on</strong>, V5– Build Level: June 27, 2011• <strong>IBM</strong> 64-bit SDK for z/OS, Java Technology Editi<strong>on</strong>, V6.0.1– Build Level: April 19, 2011 - SDK601 FP1• <strong>IBM</strong> 31-bit SDK for z/OS, Java Technology Editi<strong>on</strong>, V6.0.0– Build Level: June 25, 2011• <strong>IBM</strong> 64-bit SDK for z/OS, Java Technology Editi<strong>on</strong>, V6.0.0– Build Level: June 25, 2011• <strong>IBM</strong> 64-bit SDK for z/OS, Java 2 Technology Editi<strong>on</strong>, V5– Build Level: June 27, 2011• <strong>IBM</strong> SDK for z/OS, Java 2 Technology Editi<strong>on</strong>, V1.4– Build Level: February 13, 2011This product is no l<strong>on</strong>ger orderable <str<strong>on</strong>g>and</str<strong>on</strong>g> has beenwithdrawn from service, effective September 30, 2011.• See http://www-03.ibm.com/systems/z/os/zos/<str<strong>on</strong>g>to</str<strong>on</strong>g>ols/java/© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoJava <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>• JAXP (Java API for <str<strong>on</strong>g>XML</str<strong>on</strong>g> Processing)–DOM– SAX– XSLT (Transformati<strong>on</strong>)– Pluggability Layer for fur<strong>the</strong>r parser (Xerces, Crims<strong>on</strong>,…)• JDOM• JAXB (Java Architecture for <str<strong>on</strong>g>XML</str<strong>on</strong>g> Binding)– Generati<strong>on</strong> of <str<strong>on</strong>g>XML</str<strong>on</strong>g> out of Java objects (Marshalling) <str<strong>on</strong>g>and</str<strong>on</strong>g> generati<strong>on</strong> of Java objects out of <str<strong>on</strong>g>XML</str<strong>on</strong>g>(Unmarshalling)• TrAX (Transformati<strong>on</strong> API for <str<strong>on</strong>g>XML</str<strong>on</strong>g>)– extends <strong>the</strong> original JAXP missi<strong>on</strong> <str<strong>on</strong>g>to</str<strong>on</strong>g> include <str<strong>on</strong>g>XML</str<strong>on</strong>g> transformati<strong>on</strong>s– provide a vendor <str<strong>on</strong>g>and</str<strong>on</strong>g> implementati<strong>on</strong> agnostic st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard Java API for specifying <str<strong>on</strong>g>and</str<strong>on</strong>g> executing <str<strong>on</strong>g>XML</str<strong>on</strong>g>transformati<strong>on</strong>s.– is more than just a st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard interface for XSLT engines– is designed <str<strong>on</strong>g>to</str<strong>on</strong>g> be used as a general-purpose transformati<strong>on</strong> interface for <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents.• XPath (<str<strong>on</strong>g>XML</str<strong>on</strong>g> Path Language)– is <strong>the</strong> result of an effort <str<strong>on</strong>g>to</str<strong>on</strong>g> provide a comm<strong>on</strong> syntax <str<strong>on</strong>g>and</str<strong>on</strong>g> semantics for functi<strong>on</strong>ality shared betweenXSLT <str<strong>on</strong>g>and</str<strong>on</strong>g> XPointer– The primary purpose of XPath is <str<strong>on</strong>g>to</str<strong>on</strong>g> address parts of an <str<strong>on</strong>g>XML</str<strong>on</strong>g> document– it also provides basic facilities for manipulati<strong>on</strong> of strings, numbers <str<strong>on</strong>g>and</str<strong>on</strong>g> booleans• Very good performance improvements c<strong>on</strong>cerning <str<strong>on</strong>g>XML</str<strong>on</strong>g> since Java V6.0© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoWhat is JAXB?• A st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard set of <str<strong>on</strong>g>to</str<strong>on</strong>g>ols <str<strong>on</strong>g>and</str<strong>on</strong>g> interfaces <str<strong>on</strong>g>to</str<strong>on</strong>g> au<str<strong>on</strong>g>to</str<strong>on</strong>g>matically– generate Java files from <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema (xjc)– generate an <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema from Java (schemagen)– bind Java <str<strong>on</strong>g>to</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g> at runtime, based <strong>on</strong> annotati<strong>on</strong>s• JAXB is a framework or architecture, not an implementati<strong>on</strong>.• Sun / Oracle provides a reference implementati<strong>on</strong> of JAXB• Included in JDK© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoJAXB steps<str<strong>on</strong>g>XML</str<strong>on</strong>g> schemaBindingCompiler<str<strong>on</strong>g>XML</str<strong>on</strong>g> SchemaderivedClasses&Interfaces<str<strong>on</strong>g>XML</str<strong>on</strong>g> documentApplicati<strong>on</strong>JAXBAPIsC<strong>on</strong>tentObjects© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoThe JAXB binding process<str<strong>on</strong>g>XML</str<strong>on</strong>g> schemabindJAXB <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema schema<str<strong>on</strong>g>XML</str<strong>on</strong>g> mapped schemaclassesfollowsInstancesValidati<strong>on</strong>Instances<str<strong>on</strong>g>XML</str<strong>on</strong>g> documentunmarshalmarshal<str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema schema<str<strong>on</strong>g>XML</str<strong>on</strong>g> Java schemaObjects© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoWhat is JZOS?• A launcher for <strong>the</strong> z/OS JVM • A <str<strong>on</strong>g>to</str<strong>on</strong>g>olkit <str<strong>on</strong>g>to</str<strong>on</strong>g> use z/OS system functi<strong>on</strong>sfrom Java© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoThe JZOS launcher• A better alter<str<strong>on</strong>g>native</str<strong>on</strong>g> <str<strong>on</strong>g>to</str<strong>on</strong>g> BPXBATCH• Setup of Java envir<strong>on</strong>ment• Flexible parameter passing• JVM st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard input / output / error can be“classic” datasets (including spool)• Au<str<strong>on</strong>g>to</str<strong>on</strong>g>matic codepage c<strong>on</strong>versi<strong>on</strong>• Java exit code propagati<strong>on</strong>• Trace facility• MVS c<strong>on</strong>sole interacti<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoJCL sample//HELLOW JOB ,NOTIFY=&SYSUID,MSGLEVEL=(1,1)//JAVA EXEC JVMPRC60,// LOGLVL='+T',// JAVACLS='com.ibm.jzos.samples.PdsLister',// ARGS='//SOURCE.COBOL'//STDENV DD *CLASSPATH=/u/dnet551/jzos_samples.jarJAVA_HOME=/usr/lpp/java/J6.0PATH="/bin:$JAVA_HOME"/bin:LIBPATH=/lib:/usr/lib:"$JAVA_HOME"/bin:"$JAVA_HOME"/bin/j9vmJZOS_JVM_OPTIONS=""export JAVA_HOME PATH LIBPATH CLASSPATH JZOS_JVM_OPTIONS© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoImportant references• z/OS Java web site– http://www.ibm.com/systems/z/os/zos/<str<strong>on</strong>g>to</str<strong>on</strong>g>ols/java/• <strong>IBM</strong> SDK Java Technology Editi<strong>on</strong> Versi<strong>on</strong> 6 Supplement– http://public.dhe.ibm.com/comm<strong>on</strong>/ssi/ecm/en/zsl03118usen/ZSL03118USEN.PDF• JZOS Batch Launcher <str<strong>on</strong>g>and</str<strong>on</strong>g> Toolkit Installati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> User’s Guide (SA23-2245-03)– http://publibfi.boulder.ibm.com/epubs/pdf/ajvc0103.pdf• JZOS API Javadoc:– http://www.ibm.com/developerworks/java/zos/javadoc/jzos/jzos240/index.html© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services (z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>)• z/OS introduced direct support for <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing with z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services• z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services is an integral part of <strong>the</strong> z/OS operating system <str<strong>on</strong>g>and</str<strong>on</strong>g> wasdesigned <str<strong>on</strong>g>to</str<strong>on</strong>g> provide <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing assistance with minimal path-length• There is no need <str<strong>on</strong>g>to</str<strong>on</strong>g> download or install any additi<strong>on</strong>al packages <str<strong>on</strong>g>to</str<strong>on</strong>g> use it.• From <strong>the</strong> applicati<strong>on</strong> perspective, z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services is a set of callable routinesthat parse (or validate <str<strong>on</strong>g>and</str<strong>on</strong>g> parse) an <str<strong>on</strong>g>XML</str<strong>on</strong>g> document, rendering its c<strong>on</strong>tents in<str<strong>on</strong>g>to</str<strong>on</strong>g> anintermediate format that is easily navigated.• Applicati<strong>on</strong>s can focus <strong>on</strong> business processing <str<strong>on</strong>g>and</str<strong>on</strong>g> rely up<strong>on</strong> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices <str<strong>on</strong>g>to</str<strong>on</strong>g> h<str<strong>on</strong>g>and</str<strong>on</strong>g>le <strong>the</strong> intricacies of a<str<strong>on</strong>g>to</str<strong>on</strong>g>mizing an <str<strong>on</strong>g>XML</str<strong>on</strong>g> document.• z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> Systems Services does not use or provide SAX or DOM interfaces.• It is a buffer-oriented interface that allows <strong>the</strong> input <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>to</str<strong>on</strong>g> be provided in pieces <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>parsed result <str<strong>on</strong>g>to</str<strong>on</strong>g> be c<strong>on</strong>sumed in pieces.• There is no limit <strong>on</strong> document size using this approach.• Documents of many gigabytes can be processed.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services• While z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services does not provide SAX or DOM interfaces, <strong>the</strong>intermediate format produced by z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services can be used <str<strong>on</strong>g>to</str<strong>on</strong>g> support SAX<str<strong>on</strong>g>and</str<strong>on</strong>g> DOM parsers as well as n<strong>on</strong>-traditi<strong>on</strong>al parsing requirements.• A number of <str<strong>on</strong>g>XML</str<strong>on</strong>g>-enabled products for System z use z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services behind<strong>the</strong> scenes <str<strong>on</strong>g>to</str<strong>on</strong>g> gain advantage from its high-performance <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>sistent parsing results.• For example, COBOL <str<strong>on</strong>g>and</str<strong>on</strong>g> PL/I provide <strong>the</strong> opti<strong>on</strong> of using z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services.• DB2 Pure<str<strong>on</strong>g>XML</str<strong>on</strong>g> support also uses z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services for some of its <str<strong>on</strong>g>XML</str<strong>on</strong>g>processing.• z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> provides <strong>the</strong> opti<strong>on</strong> <str<strong>on</strong>g>to</str<strong>on</strong>g> offload most of <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing <str<strong>on</strong>g>to</str<strong>on</strong>g> a zAAP or zIIPspecialty engine, when present.• z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> supports a number of character encodings, am<strong>on</strong>g <strong>the</strong>m UTF-8, UTF-16(big endian), <strong>IBM</strong>-1047 <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>IBM</strong>-037.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services• z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> provides a collecti<strong>on</strong> of programming interfaces for callers <str<strong>on</strong>g>to</str<strong>on</strong>g> use:– C/C++ <str<strong>on</strong>g>and</str<strong>on</strong>g> assembler interfaces <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> parser itself.– C/C++, Java, <str<strong>on</strong>g>and</str<strong>on</strong>g> UNIX comm<str<strong>on</strong>g>and</str<strong>on</strong>g> line interfaces <str<strong>on</strong>g>to</str<strong>on</strong>g> utility functi<strong>on</strong>s that build binaryartifacts required for validati<strong>on</strong> during a parse.– Assembler interfaces for user exits that give callers c<strong>on</strong>trol over how <strong>the</strong> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>parser interacts with <strong>the</strong> rest of z/OS.– C/C++ interfaces <str<strong>on</strong>g>to</str<strong>on</strong>g> a service similar <str<strong>on</strong>g>to</str<strong>on</strong>g> a user exit, called a StringID h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler, that allowsfor shorth<str<strong>on</strong>g>and</str<strong>on</strong>g> communicati<strong>on</strong>s between <strong>the</strong> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> parser <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> caller.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services - Functi<strong>on</strong>s• Querying <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents• Parsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents / document fragments without validati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> with validati<strong>on</strong>• Output buffer format c<strong>on</strong>tains <strong>the</strong> parsed data stream that results from <strong>the</strong> parse process• Optimized Schema Representati<strong>on</strong> (OSR) are pre-processed versi<strong>on</strong>s of schemas• String Identifiers are a special type of output data used <str<strong>on</strong>g>to</str<strong>on</strong>g> represent some of <strong>the</strong> strings that<strong>the</strong> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> parser encounters during a parse ( 4 byte numeric)• Memory management© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services – Parser functi<strong>on</strong>s• The z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> parser API c<strong>on</strong>tains 5 entry points for each addressing mode (amode)type (31 or 64-bit):– GXL1CTL (GXL4CTL) - perform a parser c<strong>on</strong>trol operati<strong>on</strong>– GXL1INI (GXL4INI) - initialize a parse instance– GXL1PRS (GXL4PRS) - parse an input stream– GXL1QXD (GXL4QXD) - query an <str<strong>on</strong>g>XML</str<strong>on</strong>g> document– GXL1TRM (GXL4TRM) - terminate a parse instance• Specify <strong>the</strong> c<strong>on</strong>trol block address for calling <strong>the</strong>se functi<strong>on</strong>s (e. g. <str<strong>on</strong>g>native</str<strong>on</strong>g> call inCobol)• Requirements:– z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services called in TCB mode 100% of z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Servicesparsing eligible for zAAP– z/OS V1.9 <str<strong>on</strong>g>and</str<strong>on</strong>g> later– z/OS V1.8 + OA20308 (zAAP Support)– z/OS V1.7 + w/ OA16303 (z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services Rollback) + OA20308 (zAAPSupport)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services – Buffer-Spanning <str<strong>on</strong>g>and</str<strong>on</strong>g> Record SplittingOptimized SchemaRepresentati<strong>on</strong>s(for validating parses <strong>on</strong>lyOutput-Buffer1<str<strong>on</strong>g>XML</str<strong>on</strong>g>Input-Buffer1Input-Buffer2z/OS<str<strong>on</strong>g>XML</str<strong>on</strong>g>SystemServicesOutput-Buffer2Output-Buffer3Input-Buffer3Output-Buffer4Output-Buffer5© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoBuffers usages <str<strong>on</strong>g>and</str<strong>on</strong>g> flow in <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services• Every initializati<strong>on</strong> has been d<strong>on</strong>e <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>parse can takeplace• For <strong>the</strong> moment, assume that validati<strong>on</strong>is not required.• On <strong>the</strong> left side a <str<strong>on</strong>g>XML</str<strong>on</strong>g> string is provided<str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> parse.• In this example, assume that <strong>the</strong>complete document is <str<strong>on</strong>g>to</str<strong>on</strong>g>o large <str<strong>on</strong>g>to</str<strong>on</strong>g> beread in<str<strong>on</strong>g>to</str<strong>on</strong>g> a single buffer.• The reader functi<strong>on</strong> of <strong>the</strong> applicati<strong>on</strong> fillsa buffer <str<strong>on</strong>g>and</str<strong>on</strong>g> advances this as parsingprogresses.• Logically, <strong>the</strong> reader slides a bufferwindow over <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> string.• The address of <strong>the</strong> positi<strong>on</strong> of <strong>the</strong> windowis passed <str<strong>on</strong>g>to</str<strong>on</strong>g> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Servicesroutine gxlprs(), which is <strong>the</strong> parsingroutine. A• lso passed <str<strong>on</strong>g>to</str<strong>on</strong>g> gxlprs() is <strong>the</strong> address ofan output buffer where <strong>the</strong> results ares<str<strong>on</strong>g>to</str<strong>on</strong>g>red.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services parsed data stream• The parsed <str<strong>on</strong>g>XML</str<strong>on</strong>g> data streamc<strong>on</strong>tains unique record typeidentifiers for <strong>the</strong> different• comp<strong>on</strong>ents within an <str<strong>on</strong>g>XML</str<strong>on</strong>g>document. Am<strong>on</strong>g <strong>the</strong> recordtypes are:– <str<strong>on</strong>g>XML</str<strong>on</strong>g> declarati<strong>on</strong>, whenpresent– Start of an element– Character value for anelement, when present– End of an element– Name of an attribute– Value of an attribute– Namespace declarati<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS V1.12 validating parser performance improvements over z/OS V1.11.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g>4C 5.7 numbers for (n<strong>on</strong>)-validating parsing (compared <str<strong>on</strong>g>to</str<strong>on</strong>g> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>System Services V1.11 <str<strong>on</strong>g>and</str<strong>on</strong>g> V1.12.)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS• Cross-platform, open-source code based Parser (C++) for z/OS Unix Envir<strong>on</strong>ment (UNIXshell or BPXBATCH) or MVS Envir<strong>on</strong>ment (TSO or batch)– DOM– SAX– <str<strong>on</strong>g>XML</str<strong>on</strong>g>– <str<strong>on</strong>g>XML</str<strong>on</strong>g> Namespace– <str<strong>on</strong>g>XML</str<strong>on</strong>g> Schemata– <str<strong>on</strong>g>XML</str<strong>on</strong>g> Transformati<strong>on</strong>– XPathReleaseToolkit Comp<strong>on</strong>ents <str<strong>on</strong>g>and</str<strong>on</strong>g> Apache EquivalentsV1.3V1.4V1.5V1.6V1.7V1.8V1.9V1.10<str<strong>on</strong>g>XML</str<strong>on</strong>g>4C (<str<strong>on</strong>g>XML</str<strong>on</strong>g> Parser, C++ Editi<strong>on</strong>)3.5455.25.45.55.65.7Comparable Xerces C++1.51.62.12.22.42.62.62.7XSLT4C (XSLT Processor, C++ Editi<strong>on</strong>)1.21.3N/A1.51.71.91.101.11Comparable Xalan C++1.21.3N/A1.51.71.91.101.11© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS – Latest Update• The <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit can now use z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services.• This improvement provides z/OS optimized C++ classes that allow eligible <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkitprocessing– zAAP Support– Improved performance• Note: Opti<strong>on</strong>al usage of z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> by <str<strong>on</strong>g>XML</str<strong>on</strong>g> Parser, C++ Editi<strong>on</strong> users for (n<strong>on</strong>)-validatingparsing is also available in <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit V1.9 by using PTFs UA40707 <str<strong>on</strong>g>and</str<strong>on</strong>g> UA40708• Requirements:– <strong>IBM</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS, V1.10• 64-bit support: PTFs UA51089, UA51090, <str<strong>on</strong>g>and</str<strong>on</strong>g> UA51091– <strong>IBM</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS V1.9• PTFs UA40707 <str<strong>on</strong>g>and</str<strong>on</strong>g> UA40708© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS architecture<str<strong>on</strong>g>XML</str<strong>on</strong>g><str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkitfor z/OSXSLTprocessor<str<strong>on</strong>g>XML</str<strong>on</strong>g>TextHTMLXSLT<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit parserz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services<str<strong>on</strong>g>XML</str<strong>on</strong>g>C++ SAXapplicati<strong>on</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit parserz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services<str<strong>on</strong>g>XML</str<strong>on</strong>g>C++ DOMapplicati<strong>on</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit parserz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoFlow of parsing with existing <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit C++ parsers© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoFlow of parsing with existing <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit C++ parsers <str<strong>on</strong>g>and</str<strong>on</strong>g> z/OS-specificparsers© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS with <str<strong>on</strong>g>XML</str<strong>on</strong>g>SS usage - Code example#include...SAX2<str<strong>on</strong>g>XML</str<strong>on</strong>g>Reader* parser =z<str<strong>on</strong>g>XML</str<strong>on</strong>g>ReaderFac<str<strong>on</strong>g>to</str<strong>on</strong>g>ry::create<str<strong>on</strong>g>XML</str<strong>on</strong>g>Reader();#include #include #include #include #if defined(XERCES_NEW_IOSTREAMS)#include #else#include #endifXERCES_CPP_NAMESPACE_USEint main (int argc, char* args[]) {try {<str<strong>on</strong>g>XML</str<strong>on</strong>g>PlatformUtils::Initialize();}catch (c<strong>on</strong>st <str<strong>on</strong>g>XML</str<strong>on</strong>g>Excepti<strong>on</strong>& <str<strong>on</strong>g>to</str<strong>on</strong>g>Catch) {char* message = <str<strong>on</strong>g>XML</str<strong>on</strong>g>String::transcode(<str<strong>on</strong>g>to</str<strong>on</strong>g>Catch.getMessage());cout setErrorH<str<strong>on</strong>g>and</str<strong>on</strong>g>ler(defaultH<str<strong>on</strong>g>and</str<strong>on</strong>g>ler);try {parser->parse(xmlFile);}catch (c<strong>on</strong>st <str<strong>on</strong>g>XML</str<strong>on</strong>g>Excepti<strong>on</strong>& <str<strong>on</strong>g>to</str<strong>on</strong>g>Catch) {char* message = <str<strong>on</strong>g>XML</str<strong>on</strong>g>String::transcode(<str<strong>on</strong>g>to</str<strong>on</strong>g>Catch.getMessage());cout


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoPerformance Highlights• The results were generated by measuringperformance when parsing a set of <str<strong>on</strong>g>XML</str<strong>on</strong>g>documents of various sizes <str<strong>on</strong>g>and</str<strong>on</strong>g>complexities. The number of CPU cyclesrequired <str<strong>on</strong>g>to</str<strong>on</strong>g> parse a single byte wasdetermined by calculating <strong>the</strong> geometricmean of <strong>the</strong> per byte costs for all benchmarkdocuments.• Significant raw performance improvementcan be achieved for n<strong>on</strong>-validating parsing.The performance of <strong>the</strong> validating parserdepend greatly <strong>on</strong> size <str<strong>on</strong>g>and</str<strong>on</strong>g> complexity of<strong>the</strong> schema <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> document beingparsed. The following chart shows <strong>the</strong>performance boost from using z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>System Services for n<strong>on</strong>-validati<strong>on</strong> parsing.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoGeneral performance recommendati<strong>on</strong>s for <str<strong>on</strong>g>XML</str<strong>on</strong>g> Parser comp<strong>on</strong>ents• Use DTD <str<strong>on</strong>g>and</str<strong>on</strong>g> schema grammar caching <str<strong>on</strong>g>to</str<strong>on</strong>g> reduce <strong>the</strong> cost of validati<strong>on</strong>• Turn validati<strong>on</strong> off when not needed <str<strong>on</strong>g>and</str<strong>on</strong>g> avoid DOCTYPE clauses• Use special scanner when document validati<strong>on</strong> type is known (default document scannerIG<str<strong>on</strong>g>XML</str<strong>on</strong>g>Scanner; special scanners are WF<str<strong>on</strong>g>XML</str<strong>on</strong>g>Scanner for well-formedness checking <strong>on</strong>ly,DG<str<strong>on</strong>g>XML</str<strong>on</strong>g>Scanner for DTD validati<strong>on</strong> <strong>on</strong>ly, <str<strong>on</strong>g>and</str<strong>on</strong>g> SG<str<strong>on</strong>g>XML</str<strong>on</strong>g>Scanner for schema validati<strong>on</strong> <strong>on</strong>ly )• For best validating performance, use a DTD instead of a schema• Use external entities <str<strong>on</strong>g>and</str<strong>on</strong>g> external DTD's <strong>on</strong>ly when necessary (extra file opens <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>transcoding setup <strong>the</strong>y require is expensive)• Avoid multiple parses of <strong>the</strong> same document (f.e. s<str<strong>on</strong>g>to</str<strong>on</strong>g>ring <strong>the</strong> results of <strong>the</strong> initial parse in aformat which may be efficiently accessed at a later time)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoGeneral performance recommendati<strong>on</strong>s for <str<strong>on</strong>g>XML</str<strong>on</strong>g> Parser comp<strong>on</strong>ents• Reuse <strong>the</strong> initialized parser• Avoid unnecessary document c<strong>on</strong>versi<strong>on</strong>s• Reduce character count• Pre-normalize line end characters (two character sequence x'0D0A' <str<strong>on</strong>g>and</str<strong>on</strong>g> any occurrence of asolitary x'0D' with <strong>the</strong> single character x'0A' )• Avoid using default attributes• If possible, use SAX instead of DOM, especially when parsing large documents• S<str<strong>on</strong>g>to</str<strong>on</strong>g>re your <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents in <strong>the</strong> z/OS or OS/390 UNIX HFS© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Parser, C++ Editi<strong>on</strong> performance recommendati<strong>on</strong>s• If your applicati<strong>on</strong>s are compiled with <strong>the</strong> XPLINK opti<strong>on</strong>, use <strong>the</strong> XPLINK versi<strong>on</strong> of <strong>the</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g>4C parser.• Use <strong>the</strong> new DOM bindings• Disable namespace support if not needed• Be careful when using getElementsByTagname("*").getLength()– This method walks <strong>the</strong> entire DOM tree <str<strong>on</strong>g>to</str<strong>on</strong>g> count <strong>the</strong> number of elements. If your DOM islarge, this can be expensive• Pass fully qualified pathnames• Optimize your Language Envir<strong>on</strong>ment parameters– The important parameters <str<strong>on</strong>g>to</str<strong>on</strong>g> specify are HEAPP(ON), LIBS(1K,1K,Keep), <str<strong>on</strong>g>and</str<strong>on</strong>g>STOR(,,,8).– You may also need <str<strong>on</strong>g>to</str<strong>on</strong>g> override <strong>the</strong> sizes of HEAPS <str<strong>on</strong>g>and</str<strong>on</strong>g> STACKS if more s<str<strong>on</strong>g>to</str<strong>on</strong>g>rage isrequired.• Follow z/OS <str<strong>on</strong>g>and</str<strong>on</strong>g> OS/390 UNIX, C/C++, <str<strong>on</strong>g>and</str<strong>on</strong>g> Language Envir<strong>on</strong>ment guidelines© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoXSLT processor, C++ Editi<strong>on</strong> performance recommendati<strong>on</strong>s• Compile <strong>the</strong> stylesheet <strong>on</strong>ce <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n reuse it• Check heap <str<strong>on</strong>g>and</str<strong>on</strong>g> heap pool usage <str<strong>on</strong>g>and</str<strong>on</strong>g> adjust settings if necessary– Use <strong>the</strong> Language Envir<strong>on</strong>ment HEAPPOOLS(ON) <str<strong>on</strong>g>and</str<strong>on</strong>g> RPTSTG(ON) run-time opti<strong>on</strong>s<str<strong>on</strong>g>to</str<strong>on</strong>g> check heap <str<strong>on</strong>g>and</str<strong>on</strong>g> heap pool usage.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoCOBOL <str<strong>on</strong>g>and</str<strong>on</strong>g> z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services combinati<strong>on</strong>s• Note: You also can call <strong>the</strong> glue code of <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS XSLT Processor C++Editi<strong>on</strong> / <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS Parser C++ Editi<strong>on</strong> from COBOL directly.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoEnterprise COBOL <str<strong>on</strong>g>XML</str<strong>on</strong>g> support• Inbound <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing <str<strong>on</strong>g>and</str<strong>on</strong>g> outbound <str<strong>on</strong>g>XML</str<strong>on</strong>g> generati<strong>on</strong>:– <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE xml-doc PROCESSING PROCEDURE xml-h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler– <str<strong>on</strong>g>XML</str<strong>on</strong>g> GENERATE xml-doc FROM data-item COUNT IN char-count• <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing:– Runs in all COBOL run-time envir<strong>on</strong>ments: CICS, IMS, batch, TSO, USS, …– Works with any transport mechanism for <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents• Use MQSeries, CICS transient queue or COMMAREA, IMS message processingqueue, WebSphere, etc.• Provides basic SAX-style parsing• Checks well-formedness <str<strong>on</strong>g>and</str<strong>on</strong>g> since COBOL V4.2 validity• <str<strong>on</strong>g>XML</str<strong>on</strong>g> Parser is part of <strong>the</strong> COBOL run-time library• <str<strong>on</strong>g>XML</str<strong>on</strong>g> generati<strong>on</strong>:– Single statement transforms entire data structure (group)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoEnterprise COBOL <str<strong>on</strong>g>XML</str<strong>on</strong>g> support• New compiler opti<strong>on</strong>: <str<strong>on</strong>g>XML</str<strong>on</strong>g>PARSE(COMPAT | <str<strong>on</strong>g>XML</str<strong>on</strong>g>SS)– COMPAT• use existing <str<strong>on</strong>g>XML</str<strong>on</strong>g> parser (built in <str<strong>on</strong>g>to</str<strong>on</strong>g> COBOL library)–<str<strong>on</strong>g>XML</str<strong>on</strong>g>SS• use new z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services parser• Improved support for parsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents that use <str<strong>on</strong>g>XML</str<strong>on</strong>g> namespaces• Direct support is provided for parsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents that are encoded in UTF-8Unicode• Support for parsing very large <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents, a buffer at a time• More c<strong>on</strong>trol of output <str<strong>on</strong>g>XML</str<strong>on</strong>g> document:– <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents now can be encoded in UTF-8, as well as UTF-16 Unicode or variousEBCDIC codepages© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoParsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> using <strong>IBM</strong> Enterprise COBOL• <strong>IBM</strong> Enterprise COBOL has support for <str<strong>on</strong>g>XML</str<strong>on</strong>g>…– Parsing (<str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE)– Generati<strong>on</strong> (<str<strong>on</strong>g>XML</str<strong>on</strong>g> GENERATE)• Parser based <strong>on</strong> “event” model of parsing• Java gurus: Same c<strong>on</strong>cept as SAX parsing• Document can be processed in 'segments' (no l<strong>on</strong>ger needs <str<strong>on</strong>g>to</str<strong>on</strong>g> be in working s<str<strong>on</strong>g>to</str<strong>on</strong>g>ragecompletely)• Opti<strong>on</strong>ally, documents can be validated (using <str<strong>on</strong>g>XML</str<strong>on</strong>g>SS <str<strong>on</strong>g>and</str<strong>on</strong>g> compiled schemas)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: Using <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE verb01 MY-DOCUMENT PIC N(1024) NATIONAL.PARSE-<str<strong>on</strong>g>XML</str<strong>on</strong>g> SECTION.<str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE MY-DOCUMENTPROCESSING PROCEDURE <str<strong>on</strong>g>XML</str<strong>on</strong>g>EVENT-HANDLERON EXCEPTIONDISPLAY '<str<strong>on</strong>g>XML</str<strong>on</strong>g> DOCUMENT ERROR ' <str<strong>on</strong>g>XML</str<strong>on</strong>g>-CODENOT ON EXCEPTIONDISPLAY '<str<strong>on</strong>g>XML</str<strong>on</strong>g> DOCUMENT SUCCESSFULLY PARSED.'END-<str<strong>on</strong>g>XML</str<strong>on</strong>g>.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: Using <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE verb01 MY-DOCUMENT PIC N(1024) NATIONAL.PARSE-<str<strong>on</strong>g>XML</str<strong>on</strong>g> SECTION.<str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE MY-DOCUMENTPROCESSING PROCEDURE <str<strong>on</strong>g>XML</str<strong>on</strong>g>EVENT-HANDLERON EXCEPTIONDISPLAY '<str<strong>on</strong>g>XML</str<strong>on</strong>g> DOCUMENT ERROR ' <str<strong>on</strong>g>XML</str<strong>on</strong>g>-CODENOT ON EXCEPTIONDISPLAY '<str<strong>on</strong>g>XML</str<strong>on</strong>g> DOCUMENT SUCCESSFULLY PARSED.'END-<str<strong>on</strong>g>XML</str<strong>on</strong>g>.<str<strong>on</strong>g>XML</str<strong>on</strong>g>HANDLERS SECTION.<str<strong>on</strong>g>XML</str<strong>on</strong>g>EVENT-HANDLER.EVALUATE <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTWHEN 'START-OF-ELEMENT'...WHEN 'CONTENT-CHARACTERS'...END-EVALUATE.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> event h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler• Called by COBOL runtime during parsing (“callback”)• Special register <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT c<strong>on</strong>tains type of “event”:– Begin / end of document– Begin / end of an element– Start of text–…• Special register <str<strong>on</strong>g>XML</str<strong>on</strong>g>-TEXT or <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT c<strong>on</strong>tains event-related informati<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: START-OF-DOCUMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: (entire document)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: VERSION-INFORMATION<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: 1.0© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: VERSION-INFORMATION<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: ibm-1140© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: COMMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: © 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: START-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: s<str<strong>on</strong>g>and</str<strong>on</strong>g>wich© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: START-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: bread© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: ATTRIBUTE-NAME<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: type© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: ATTRIBUTE-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: baker© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: ATTRIBUTE-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: ‘© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: ATTRIBUTE-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: s best© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: END-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: bread© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: END-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: bread© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: PROCESSING-INSTRUCTION-TARGET<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: spread© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: PROCESSING-INSTRUCTION-DATA<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: please use real may<strong>on</strong>naise© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: START-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: meat© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: CONTENT-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: HAM© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: CONTENT-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: &© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: CONTENT-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: turkey© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: END-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: meat© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: START-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: filling© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: CONTENT-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: Cheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: END-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: filling© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: START-OF-CDATA-SECTION<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT:


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: CONTENT-CHARACTERS<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: We should add a element in future!© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: START-OF-CDATA-SECTION<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: ]]>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: END-OF-ELEMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: s<str<strong>on</strong>g>and</str<strong>on</strong>g>wich© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoExample: <str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENTs <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXTHam &amp; turkeyCheese, lettuce, <str<strong>on</strong>g>to</str<strong>on</strong>g>ma<str<strong>on</strong>g>to</str<strong>on</strong>g>, etc. element in future!]]><str<strong>on</strong>g>XML</str<strong>on</strong>g>-EVENT: END-OF-DOCUMENT<str<strong>on</strong>g>XML</str<strong>on</strong>g>-NTEXT: (empty)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong>• In Enterprise COBOL, a schema used for <str<strong>on</strong>g>XML</str<strong>on</strong>g> validati<strong>on</strong> must be in a preprocessed formatknown as Optimized Schema Representati<strong>on</strong>, or OSR.• To generate a schema in OSR format from a text-form schema, use <strong>the</strong> z/OS UNIXcomm<str<strong>on</strong>g>and</str<strong>on</strong>g> xsdosrg, which invokes <strong>the</strong> OSR genera<str<strong>on</strong>g>to</str<strong>on</strong>g>r provided by z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices.• Example: <str<strong>on</strong>g>to</str<strong>on</strong>g> c<strong>on</strong>vert <strong>the</strong> text-form schema in file item.xsd <str<strong>on</strong>g>to</str<strong>on</strong>g> a schema in preprocessedformat in file item.osr, you can use <strong>the</strong> following z/OS UNIX comm<str<strong>on</strong>g>and</str<strong>on</strong>g>:xsdosrg -v -o /u/HLQ/xml/item.osr /u/HLQ/xml/item.xsd• Use <strong>on</strong>e of two forms of <strong>the</strong> VALIDATING phrase, depending <strong>on</strong> <strong>the</strong> locati<strong>on</strong> of <strong>the</strong>preprocessed schema:– In <strong>on</strong>e form, you use <strong>the</strong> FILE keyword <str<strong>on</strong>g>and</str<strong>on</strong>g> specify an <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema name. In this case,<strong>the</strong> schema must be in an MVS data set or a z/OS UNIX file.– In <strong>the</strong> o<strong>the</strong>r form, you specify <strong>the</strong> identifier of a data item that c<strong>on</strong>tains <strong>the</strong> schema.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE xmldocVALIDATING WITH FILE mySchemaPROCESSING PROCEDURE p1END-<str<strong>on</strong>g>XML</str<strong>on</strong>g>• If you use <strong>the</strong> FILE keyword <str<strong>on</strong>g>and</str<strong>on</strong>g> specify an <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema name, <strong>the</strong> COBOL runtime libraryau<str<strong>on</strong>g>to</str<strong>on</strong>g>matically retrieves <strong>the</strong> schema during executi<strong>on</strong> of <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE statement.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong>• To associate an <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema name with <strong>the</strong> external file that c<strong>on</strong>tains <strong>the</strong> schema, code <strong>the</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g>-SCHEMA clause in <strong>the</strong> SPECIAL-NAMES paragraph, specifying ei<strong>the</strong>r a literal or auser-defined word <str<strong>on</strong>g>to</str<strong>on</strong>g> identify <strong>the</strong> file.• For example, you can associate <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema name mySchema with <strong>the</strong> ddnameDDSCHEMA by coding <strong>the</strong> ddname as a literal in <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g>-SCHEMA clause as follows:ENVIRONMENT DIVISION.CONFIGURATION SECTION.SPECIAL-NAMES.<str<strong>on</strong>g>XML</str<strong>on</strong>g>-SCHEMA mySchema IS 'DDSCHEMA'.• For running <strong>the</strong> program, you can associate ddname DDSCHEMA with <strong>the</strong> z/OS UNIX fileitem.osr by coding a DD statement as follows://GO.DDSCHEMA DD PATH='/u/HLQ/xml/item.osr‘• Or you can use an analogous TSO ALLOCATE comm<str<strong>on</strong>g>and</str<strong>on</strong>g>.• Alter<str<strong>on</strong>g>native</str<strong>on</strong>g>ly, DDSCHEMA could be <strong>the</strong> name of an envir<strong>on</strong>ment variable that identifies <strong>the</strong>external file by means of– a DSN opti<strong>on</strong> that specifies an MVS data set or– a PATH opti<strong>on</strong> that specifies a z/OS UNIX file© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong><str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE xmldocVALIDATING WITH mySchema-idPROCESSING PROCEDURE p1END-<str<strong>on</strong>g>XML</str<strong>on</strong>g>• If you do not use <strong>the</strong> FILE keyword <str<strong>on</strong>g>and</str<strong>on</strong>g> specify an <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema identifier, <strong>the</strong> schema mustbe in <strong>the</strong> specified data item during executi<strong>on</strong> of <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE statement.VParse secti<strong>on</strong>.Perform Get-schemaDisplay "Completed reading schema in<str<strong>on</strong>g>to</str<strong>on</strong>g> memory"Perform Validate-<str<strong>on</strong>g>XML</str<strong>on</strong>g>Display "Completed validating PARSE"If document-validPerform Process-data-from-<str<strong>on</strong>g>XML</str<strong>on</strong>g>End-if.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong>Data divisi<strong>on</strong>.File secti<strong>on</strong>.FD F2block c<strong>on</strong>tains 0recording mode is F.01 R2 Pic x(80).Local-s<str<strong>on</strong>g>to</str<strong>on</strong>g>rage secti<strong>on</strong>.01 fs2 Pic 99.01 DOCL Pic 9(9) BINARY.01 mySchema-id Pic X(1000000).© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong>Get-schema secti<strong>on</strong>.Open input F2If FS2 not = 0<strong>the</strong>nDisplay 'OPEN failed,''FS=' FS2GobackEnd-ifSet Not-EOF To TRUECompute DocL = 1Perform Until EOFRead F2At End Set EOF To TRUE Display "EOF <strong>on</strong> F2"Not At EndDisplay "Read: " R2(1:80)Move R2(1:80) To mySchema-id(DocL:80)Add 80 To DocLEnd-IfEnd-ReadEnd-PerformClose F2.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong>Validate-<str<strong>on</strong>g>XML</str<strong>on</strong>g> secti<strong>on</strong>.Display "Reading <str<strong>on</strong>g>and</str<strong>on</strong>g> parsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> ..."Open input F1Read F1Display "Read: " R1(1:L)<str<strong>on</strong>g>XML</str<strong>on</strong>g> parse R1(1:L)VALIDATING WITH myschema-idwith encoding 1047processing procedure PEnd-<str<strong>on</strong>g>XML</str<strong>on</strong>g>Close F1.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE with validati<strong>on</strong>• VALIDATING WITH identifier– Requires schema in memory before <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE statement– Use COBOL READ, EXEC CICS READ or SQL SELECT <str<strong>on</strong>g>to</str<strong>on</strong>g> get schema in<str<strong>on</strong>g>to</str<strong>on</strong>g> memory– Supported under CICS– Could be efficient <str<strong>on</strong>g>to</str<strong>on</strong>g> read <strong>the</strong> schema in<str<strong>on</strong>g>to</str<strong>on</strong>g> memory <strong>on</strong>ce <str<strong>on</strong>g>and</str<strong>on</strong>g> reuse it for subsequent<str<strong>on</strong>g>XML</str<strong>on</strong>g> documents• VALIDATING WITH FILE– Reads schema in<str<strong>on</strong>g>to</str<strong>on</strong>g> memory for every parse: c<strong>on</strong>venient, but slow– Not supported under CICS© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoNew in Enterprise COBOL V4R2 – Performance improvements <str<strong>on</strong>g>to</str<strong>on</strong>g>parsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents without validati<strong>on</strong>• In Enterprise COBOL V4R1, some users found that <str<strong>on</strong>g>XML</str<strong>on</strong>g> PARSE was slow with<str<strong>on</strong>g>XML</str<strong>on</strong>g>PARSE(<str<strong>on</strong>g>XML</str<strong>on</strong>g>SS)• Typical setup was– STORAGE(00)– ANYHEAP(FREE)• Soluti<strong>on</strong>–STORAGE(NONE) or– ANYHEAP(KEEP)• In Enterprise COBOL V4R2 this problem is solved– You get <strong>the</strong> better performance with any settings© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support in Enterprise PL/I• Parsing of <str<strong>on</strong>g>XML</str<strong>on</strong>g>:– PLISAXA(e, p, x, n, c) V3.1– PLISAXB(e, p, x, c) V3.1– PLISAXC(e, p, x, n, c) V3.8– PLISAXD(e, p, x, n, o, c) V4.1• Generati<strong>on</strong> of <str<strong>on</strong>g>XML</str<strong>on</strong>g>:– <str<strong>on</strong>g>XML</str<strong>on</strong>g>CHARepxnocEvent structurePointer value / <str<strong>on</strong>g>to</str<strong>on</strong>g>kenAddress of buffer, or input filename (for PLISAXB)Number of bytes in bufferAddress of buffer c<strong>on</strong>taining OSRCodepage of <str<strong>on</strong>g>XML</str<strong>on</strong>g> document (opti<strong>on</strong>al)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Parsing: PLISAXA, PLISAXB, PLISAXC, PLISAXDInputValidatingNamespacesPullz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>PLISAXAPLISAXBPLISAXCPLISAXD© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Events (Selecti<strong>on</strong>)Name of <strong>the</strong> Event• start_of_document• end_of_document• start_of_element• end_of_element• attribute_name• attribute_characters• c<strong>on</strong>tent_characters• end_of_input• excepti<strong>on</strong>MeaningStart of <strong>the</strong> documentEnd of <strong>the</strong> documentStart of an element (start tag)End of an element (end tag)Name of <strong>the</strong> attributeValue of <strong>the</strong> attributeC<strong>on</strong>tentEnd of <strong>the</strong> input buffer is reachederror occurred© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoEvent declarati<strong>on</strong>dcl1 eventH<str<strong>on</strong>g>and</str<strong>on</strong>g>ler static, 2 e01 type event_without_data init( start_of_document ), 2 e02 type event init( versi<strong>on</strong>_informati<strong>on</strong> ), 2 e03 type event init( encoding_declarati<strong>on</strong> ), 2 e04 type event init( st<str<strong>on</strong>g>and</str<strong>on</strong>g>al<strong>on</strong>e_declarati<strong>on</strong> ), 2 e05 type event init( document_type_declarati<strong>on</strong> ), 2 e06 type event_without_data init( end_of_document ), 2 e07 type event_with_namespace init( start_of_element ), 2 e11 type event_without_data init( start_of_CDATA ), 2 e12 type event_without_data init( end_of_CDATA ), 2 e13 type event_with_flag init( c<strong>on</strong>tent_characters ), 2 e14 type event_pi init( processing_instructi<strong>on</strong> ), 2 e15 type event init( comment ), 2 e16 type event_namespace_dcl init( namespace_declare ), 2 e17 type event_end_of_input init( end_of_input ), 2 e18 type event init( unresolved_reference ), 2 e19 type event_excepti<strong>on</strong> init( excepti<strong>on</strong> );© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoEvent h<str<strong>on</strong>g>and</str<strong>on</strong>g>lerstart_of_element:proc( userToken, xmlToken, TokenLength,nsPrefix, nsPrefixLength, nsUri, nsUriLength )returns( byvalue fixed bin(31) )opti<strong>on</strong>s( byvalue linkage(optlink) );dcl userToken pointer;dcl xmlToken pointer;dcl <str<strong>on</strong>g>to</str<strong>on</strong>g>kenLength fixed bin(31);dcl nsPrefix pointer;dcl nsPrefixLength fixed bin(31);dcl nsUri pointer;dcl nsUriLength fixed bin(31);put skip list( lowercase( procname() )|| ' ' );return(0);end;© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoParser Calldcl <str<strong>on</strong>g>to</str<strong>on</strong>g>ken char(8);dcl xmlDocument char(4000) var;xmlDocument ='‘|| ''|| ''|| ...|| ''|| ' ';call plisaxc( eventH<str<strong>on</strong>g>and</str<strong>on</strong>g>ler,addr(<str<strong>on</strong>g>to</str<strong>on</strong>g>ken),addrdata(xmlDocument),length(xmlDocument) );© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoParsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents with validati<strong>on</strong>• PLISAXD not <strong>on</strong>ly parses <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents in <strong>the</strong> same manner as PLISAXC, but alsodetermines whe<strong>the</strong>r an inbound <str<strong>on</strong>g>XML</str<strong>on</strong>g> document c<strong>on</strong>forms <str<strong>on</strong>g>to</str<strong>on</strong>g> a set of rules specified in aninbound <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema.• The inbound schema used for <str<strong>on</strong>g>XML</str<strong>on</strong>g> validati<strong>on</strong> must be in a preprocessed format known asan Optimized Schema Representati<strong>on</strong> (OSR).• To generate a schema in <strong>the</strong> OSR format from a text-form schema, use <strong>the</strong> z/OS UNIXcomm<str<strong>on</strong>g>and</str<strong>on</strong>g> xsdosrg, which invokes <strong>the</strong> OSR genera<str<strong>on</strong>g>to</str<strong>on</strong>g>r provided by z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices.• xsdosrg -v -o /u/HLQ/xml/s<str<strong>on</strong>g>to</str<strong>on</strong>g>ck.osr /u/HLQ/xml/s<str<strong>on</strong>g>to</str<strong>on</strong>g>ck.xsd cp -p/u/HLQ/xml/s<str<strong>on</strong>g>to</str<strong>on</strong>g>ck.osr "//'HLQ.<str<strong>on</strong>g>XML</str<strong>on</strong>g>.OSR(STOCK)'"• PLISAXD requires <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> schema file <str<strong>on</strong>g>to</str<strong>on</strong>g> be read in<str<strong>on</strong>g>to</str<strong>on</strong>g> a buffer© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoGenerating <str<strong>on</strong>g>XML</str<strong>on</strong>g> with <str<strong>on</strong>g>XML</str<strong>on</strong>g>CHAR• <str<strong>on</strong>g>XML</str<strong>on</strong>g>CHAR (x, p, n)– x Structure reference– p Address of target buffer– n Length of target buffer• Dumps data from a structure as <str<strong>on</strong>g>XML</str<strong>on</strong>g> in<str<strong>on</strong>g>to</str<strong>on</strong>g> a buffer• Returns <strong>the</strong> number of bytes written <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> buffer• If buffer <str<strong>on</strong>g>to</str<strong>on</strong>g>o small, data is truncated <str<strong>on</strong>g>and</str<strong>on</strong>g> number of bytes needed is returned• Each name in <strong>the</strong> structure will be written out, enclosed as start / end tags• Numeric <str<strong>on</strong>g>and</str<strong>on</strong>g> bit data will be c<strong>on</strong>verted <str<strong>on</strong>g>to</str<strong>on</strong>g> character• Leading <str<strong>on</strong>g>and</str<strong>on</strong>g> trailing blanks will be trimmed wherever possible© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g>CHAR restricti<strong>on</strong>s• Structure must c<strong>on</strong>tain <strong>on</strong>ly computati<strong>on</strong>al data (string <str<strong>on</strong>g>and</str<strong>on</strong>g> numeric)• Structure may c<strong>on</strong>tain arrays, but if itself is an array, <strong>the</strong>n it must be completely subscripted• Structure may c<strong>on</strong>tain substructures, but any c<strong>on</strong>tained substructure must not use an * inplace of a name• However, an * may be used as <strong>the</strong> name of a base element, but in that case, <strong>the</strong> unnamedelement will not be written <str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> target buffer• No attributes• No namespace support• No generati<strong>on</strong> of <str<strong>on</strong>g>XML</str<strong>on</strong>g> declarati<strong>on</strong>• No user-specified encoding (use MEMCONVERT built-in functi<strong>on</strong>)© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duoz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> RequirementsWorkloadz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices, n<strong>on</strong>-validatingparsing, – executing inTCB modeExamples- any SW using z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices parsing in TCB- EXAMPLE : local applicati<strong>on</strong>sinserting/ saving <str<strong>on</strong>g>XML</str<strong>on</strong>g> data, <str<strong>on</strong>g>and</str<strong>on</strong>g><str<strong>on</strong>g>XML</str<strong>on</strong>g> table loads <strong>on</strong> DB2 9AvailableSept, 2007(with z/OSV1.9 GA)Redirect100% of z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>System Servicesparsing - eligible forzAAPRequirementsDB2 9 New Functi<strong>on</strong> Modez/OS 1.9z/OS 1.8 (with OA20308)z/OS 1.7 (1) (w/ OA16303<str<strong>on</strong>g>and</str<strong>on</strong>g> OA20308)- select <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS V1.9parsing workloadsMay, 2008same<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS V1.10 or V1.9 (5655-J51)with PTFs UA40707 <str<strong>on</strong>g>and</str<strong>on</strong>g> UA40708C API for z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>System Services availablewith z/OS 1.9, <str<strong>on</strong>g>and</str<strong>on</strong>g> z/OS1.7 & 1.8 with APAROA18713z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices, n<strong>on</strong>-validatingparsing, executing inenclave SRB mode- Enterprise COBOL V4.1, using<str<strong>on</strong>g>XML</str<strong>on</strong>g>PARSE opti<strong>on</strong>- DB2 9 inserting/ saving <str<strong>on</strong>g>XML</str<strong>on</strong>g> datausing DRDA via TCP/IPDec, 2007(with COBOLV4.1 GA)Sept. 2006(with GA ofz/OS V1.8)sameSame % as <strong>the</strong> zIIPeligiblework (DRDA)Enterprise COBOL V4.1 (5655-J51)z/OS V1.7 (1) - V1.9 with OA22777(SW Announce 207-339).DB2 9 New Functi<strong>on</strong> Modez/OS 1.8,z/OS 1.7 (1) w/ OA16303- any SW (including DB2 9) usingz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services inenclave SRB modeGA of z/OSV1.10100% of z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>System Servicesparsing eligible for zIIPz/OS 1.9 <str<strong>on</strong>g>and</str<strong>on</strong>g> 1.8 (both with APAR OA22035)DB2 9 NFMz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices with validatingparsing, both enclaveSRB <str<strong>on</strong>g>and</str<strong>on</strong>g> TCB modes.- any SW using z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices validating parsingGA z/OSV1.10100% of z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SystemServices validating parsingeligible for zAAP (TCB) orzIIP (enclave SRB)z/OS V1.10 <str<strong>on</strong>g>and</str<strong>on</strong>g> 1.9 (with APAR OA25903)- select <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OSworkloadsNov. 2009same<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS V1.10Java-based <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing- applicati<strong>on</strong>s using Java-based<str<strong>on</strong>g>XML</str<strong>on</strong>g> parser in <strong>IBM</strong> SDK- any SW performing <str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing/processing in JavaYes (withavailability ofzAAP)100% of Java-based<str<strong>on</strong>g>XML</str<strong>on</strong>g> parsing eligible forzAAPAny z/OS, System z processor with zAAPsupport.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoParsing <str<strong>on</strong>g>XML</str<strong>on</strong>g> files (Example)Parsing very large <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents in a batch jobCPU sec<strong>on</strong>ds251.61 MB2475.66 MBJava z/OS 5.0 31Bit(SAX, incl. JVMStartup)Java z/OS 5.0 64Bit(SAX, incl. JVMStartup)Java z/OS 6.0 31Bit JIT(SAX, incl. JVMStartup)Java z/OS 6.0 64Bit JIT(SAX, incl. JVMStartup)z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkitz/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> SSNote: Results may differ depending <strong>on</strong> <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong>.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoSystem z performance race – z10 vs. zEnterprise (z196)• Overview:– Race 1:Parsing a 2,5GB sample SEPA document from a Cobol/Batch program using <strong>the</strong> z/OS<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services.– Race 2:Parsing a 250 MB sample SEPA document from a Java/Batch program <strong>on</strong> z/OS using<strong>the</strong> SAX.• Start zRace• RMF M<strong>on</strong>i<str<strong>on</strong>g>to</str<strong>on</strong>g>r© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoDriving new workload <strong>on</strong> z196© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoDriving new workload <strong>on</strong> z196© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoCICS Transacti<strong>on</strong> Server <str<strong>on</strong>g>XML</str<strong>on</strong>g> architecture• CICS can generate <str<strong>on</strong>g>and</str<strong>on</strong>g> parse <str<strong>on</strong>g>XML</str<strong>on</strong>g> intwo ways:– Using <strong>the</strong> EXEC CICSTRANSFORM statement• From CICS TS 4.1 <strong>the</strong> newEXEC CICS TRANSFORMstatement enables you <str<strong>on</strong>g>to</str<strong>on</strong>g>generate or parse <str<strong>on</strong>g>XML</str<strong>on</strong>g>regardless of <strong>the</strong>communicati<strong>on</strong>s channels.–Using CICS WebServices• The CICS WEB Servicesfuncti<strong>on</strong>s within CICS TS breakan HTTP request in<str<strong>on</strong>g>to</str<strong>on</strong>g> HTTP,SOAP, <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g> comp<strong>on</strong>ents.• Support for CICS Web Servicespipeline is available beginningin V4R1 using z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g>System Services for <strong>the</strong>ir <strong>on</strong>dem<str<strong>on</strong>g>and</str<strong>on</strong>g>parsing.• CICS uses <strong>the</strong> <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit <str<strong>on</strong>g>to</str<strong>on</strong>g>enable Web Services Security.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoCICS TS <str<strong>on</strong>g>and</str<strong>on</strong>g> Web services• CICS TS receives requestsfor Web services usingHTTP, SOAP, <str<strong>on</strong>g>and</str<strong>on</strong>g> RESTpro<str<strong>on</strong>g>to</str<strong>on</strong>g>cols.• SOAP/<str<strong>on</strong>g>XML</str<strong>on</strong>g> c<strong>on</strong>versi<strong>on</strong> isperformed <str<strong>on</strong>g>to</str<strong>on</strong>g> c<strong>on</strong>vertSOAP/<str<strong>on</strong>g>XML</str<strong>on</strong>g>-based requestsin<str<strong>on</strong>g>to</str<strong>on</strong>g> c<strong>on</strong>venti<strong>on</strong>alCICS commareas, which arepassed <str<strong>on</strong>g>to</str<strong>on</strong>g> CICS applicati<strong>on</strong>susing EXEC CICS LINKpro<str<strong>on</strong>g>to</str<strong>on</strong>g>col.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoCICS transform statement• Since CICS TS 4.1 you are able <str<strong>on</strong>g>to</str<strong>on</strong>g>generate or parse <str<strong>on</strong>g>XML</str<strong>on</strong>g> regardless of<strong>the</strong> communicati<strong>on</strong>s channels, using<strong>the</strong> new EXEC CICS TRANSFORMstatement.• With this statement you have <strong>the</strong>same c<strong>on</strong>versi<strong>on</strong> capabilities as inWebService, but it is not dependen<str<strong>on</strong>g>to</str<strong>on</strong>g>n <strong>the</strong> use of <strong>the</strong> SOAP pro<str<strong>on</strong>g>to</str<strong>on</strong>g>colusing HTTP or MQ.• This makes it even simpler <str<strong>on</strong>g>to</str<strong>on</strong>g> use<str<strong>on</strong>g>XML</str<strong>on</strong>g> messages in existing or newCICS applicati<strong>on</strong>s.© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoIMS <str<strong>on</strong>g>XML</str<strong>on</strong>g> Database• Introduces a way <str<strong>on</strong>g>to</str<strong>on</strong>g> view/map <str<strong>on</strong>g>native</str<strong>on</strong>g> IMS hierarchical data <str<strong>on</strong>g>to</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents• Aligns IMS Database (DBD) with <str<strong>on</strong>g>XML</str<strong>on</strong>g> Schema• Allows <strong>the</strong> retrieval <str<strong>on</strong>g>and</str<strong>on</strong>g> s<str<strong>on</strong>g>to</str<strong>on</strong>g>rage of IMS Records as <str<strong>on</strong>g>XML</str<strong>on</strong>g> documents with no change <str<strong>on</strong>g>to</str<strong>on</strong>g>existing IMS databases© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoWebSphere Transformati<strong>on</strong> eXtender (WTX)• C<strong>on</strong>verter for multiple input <str<strong>on</strong>g>and</str<strong>on</strong>g> output dataformats• Various runtime envir<strong>on</strong>ments–Batch– St<str<strong>on</strong>g>and</str<strong>on</strong>g>al<strong>on</strong>e Event Driven– WMB Plug-in– Java API–etc• Code-free design <str<strong>on</strong>g>and</str<strong>on</strong>g> deployment• Complex Transformati<strong>on</strong>s• Pre-built industry packs available, such as–SWIFTNetFIN– SWIFTNet Funds– SEPA related pre-builts in <strong>the</strong> worksNew!• Note: Since WTXV8.4 <str<strong>on</strong>g>XML</str<strong>on</strong>g>SSParser support<str<strong>on</strong>g>and</str<strong>on</strong>g> COBOLprograms can callWTX 64-bit API© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte Duo<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support since DB2 9• Exploiter of z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> SupportWednesday 11:45 – 13:00Sessi<strong>on</strong> zNS04DB2 10 for z/OS - Let yourapplicati<strong>on</strong>s benefit from it!Christian DaserDB2 Engine70 <str<strong>on</strong>g>XML</str<strong>on</strong>g> S<str<strong>on</strong>g>to</str<strong>on</strong>g>rage1 Insert <str<strong>on</strong>g>XML</str<strong>on</strong>g>Applicati<strong>on</strong>Textual <str<strong>on</strong>g>XML</str<strong>on</strong>g>16XSR2435<str<strong>on</strong>g>XML</str<strong>on</strong>g> 08 9Relati<strong>on</strong>al2345678S<str<strong>on</strong>g>to</str<strong>on</strong>g>re as <str<strong>on</strong>g>XML</str<strong>on</strong>g>Shred in<str<strong>on</strong>g>to</str<strong>on</strong>g> RelRetrieve <str<strong>on</strong>g>XML</str<strong>on</strong>g>Publish <str<strong>on</strong>g>XML</str<strong>on</strong>g>Select <str<strong>on</strong>g>XML</str<strong>on</strong>g><str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>to</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g><str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>to</str<strong>on</strong>g> Rel9Rel <str<strong>on</strong>g>to</str<strong>on</strong>g> <str<strong>on</strong>g>XML</str<strong>on</strong>g>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoA view in<str<strong>on</strong>g>to</str<strong>on</strong>g> <strong>the</strong> <strong>IBM</strong> zEnterprise SystemA new dimensi<strong>on</strong> in <strong>the</strong> Applicati<strong>on</strong> ArchitekturSystem z Hardware Management C<strong>on</strong>sole (HMC)with Unified Resource Managerz/OSSystem z Hostz/TPFz/VSE TMLinux <strong>on</strong>System zSystem z PR/SM z HW ResourcesSupport ElementLinux<strong>on</strong>System zz/VMSelect <strong>IBM</strong> BladesLinux <strong>on</strong>System x 1Blade Virtualizati<strong>on</strong>AIX <strong>on</strong>POWER7Blade Virtualizati<strong>on</strong>Blade HW ResourceszBXDataPower 1Optimizers<strong>IBM</strong> Smart Analytics OptimizerFuture OfferingFuture OfferingPrivate data network (IEDN)Cus<str<strong>on</strong>g>to</str<strong>on</strong>g>mer NetworkUnified ResourceManagerPrivate Management Network INMNPrivate High Speed Data Network IEDN1 All statements regarding <strong>IBM</strong> future directi<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> intent are subject <str<strong>on</strong>g>to</str<strong>on</strong>g> change orwithdrawal without notice, <str<strong>on</strong>g>and</str<strong>on</strong>g> represents goals <str<strong>on</strong>g>and</str<strong>on</strong>g> objectives <strong>on</strong>ly.Cus<str<strong>on</strong>g>to</str<strong>on</strong>g>mer Network© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoWebSphere DataPower XI50z integrati<strong>on</strong> with System ZAnnouncement 15. Februar 2011 (Link)The <strong>IBM</strong> WebSphere DataPower Integrati<strong>on</strong>Appliance XI50 for zEnterprise can help simplify,govern, <str<strong>on</strong>g>and</str<strong>on</strong>g> enhance <strong>the</strong> security of <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> OTservices by providing c<strong>on</strong>nectivity, gatewayfuncti<strong>on</strong>s, data transformati<strong>on</strong>s, pro<str<strong>on</strong>g>to</str<strong>on</strong>g>col bridging,<str<strong>on</strong>g>and</str<strong>on</strong>g> intelligent load distributi<strong>on</strong>.Same Functi<strong>on</strong> <strong>on</strong> Multiple Form Fac<str<strong>on</strong>g>to</str<strong>on</strong>g>rs:WebSphere DataPower XI50zXI50 XI50b XI50z• C<strong>on</strong>sumable hardware ESB• “Any-<str<strong>on</strong>g>to</str<strong>on</strong>g>-any” c<strong>on</strong>versi<strong>on</strong> at wire-speed• Dynamic routing; intelligent load distributi<strong>on</strong>• DP XI50b brings <strong>the</strong> XI50 capabilities <str<strong>on</strong>g>to</str<strong>on</strong>g> bear in anoptimized <strong>IBM</strong> BladeCenter form-fac<str<strong>on</strong>g>to</str<strong>on</strong>g>r• DP XI50z brings <strong>the</strong> XI50 capabilities in an optimized<strong>IBM</strong> zEnterprise zBXHMCzEnterprisezBX119© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoLegacy Enablement<str<strong>on</strong>g>XML</str<strong>on</strong>g> Parsing, binary transformati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> SecurityClientEncrypted <str<strong>on</strong>g>XML</str<strong>on</strong>g>SOAP/HTTPSSignificantCPUc<strong>on</strong>sumpti<strong>on</strong>for <str<strong>on</strong>g>XML</str<strong>on</strong>g>processingEncypted <str<strong>on</strong>g>XML</str<strong>on</strong>g>SOAP/HTTPSzEnterpriseSOAP/HTTP with binary(Cobol) MTOM attachmentReduced CPUc<strong>on</strong>sumpti<strong>on</strong>for <str<strong>on</strong>g>XML</str<strong>on</strong>g>processingClient• Backend can be anything: CICS, IMS, WAS, Message Broker…..• C<strong>on</strong>necti<strong>on</strong> can be anything: binary over MQ, SOAP….© 2012 <strong>IBM</strong> Corporati<strong>on</strong>120


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoReas<strong>on</strong>s <str<strong>on</strong>g>to</str<strong>on</strong>g> move <str<strong>on</strong>g>to</str<strong>on</strong>g> XI50zzBX integrated vs. st<str<strong>on</strong>g>and</str<strong>on</strong>g>-al<strong>on</strong>e soluti<strong>on</strong>• Integrati<strong>on</strong> in<str<strong>on</strong>g>to</str<strong>on</strong>g> Sysplex Distribu<str<strong>on</strong>g>to</str<strong>on</strong>g>r• SYLOG Integrati<strong>on</strong>• C<strong>on</strong>solidated platform error logging across whole envir<strong>on</strong>ment• HMC C<strong>on</strong>sole Integrati<strong>on</strong>– Blade Hardware Management integrati<strong>on</strong>– M<strong>on</strong>i<str<strong>on</strong>g>to</str<strong>on</strong>g>ring of hardware for health, degraded operati<strong>on</strong>– Call-home for current/expected problems, au<str<strong>on</strong>g>to</str<strong>on</strong>g>matic dispatch of CSR– C<strong>on</strong>solidati<strong>on</strong>/Integrati<strong>on</strong> of DataPower hardware problem reporting with o<strong>the</strong>r problemsreported in zBX– M<strong>on</strong>i<str<strong>on</strong>g>to</str<strong>on</strong>g>ring <str<strong>on</strong>g>and</str<strong>on</strong>g> Management of DP Blades– DataPower Firmware Load <str<strong>on</strong>g>and</str<strong>on</strong>g> Update– DataPower Failure Recovery <str<strong>on</strong>g>and</str<strong>on</strong>g> Restart• Networking– Virtual Network Provisi<strong>on</strong>ing– Provides enforced isolati<strong>on</strong> of network traffic via VLAN support– 10Gb end-<str<strong>on</strong>g>to</str<strong>on</strong>g>-end network infrastructure– Built-in network redundancy– IEDN provides protected network, possibly obviating cus<str<strong>on</strong>g>to</str<strong>on</strong>g>mer-perceived need forencrypti<strong>on</strong> of last-mile flows between DP <str<strong>on</strong>g>and</str<strong>on</strong>g> target back-end server© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoAgenda• Native <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>technologies</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>IBM</strong> Mainframe–Java for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise Cobol–<str<strong>on</strong>g>XML</str<strong>on</strong>g> Support for Enterprise PL/I–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in CICS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in IMS–<str<strong>on</strong>g>XML</str<strong>on</strong>g> in WTX, DB2 <str<strong>on</strong>g>and</str<strong>on</strong>g> WebSphere DataPower XI50(z)• Summary <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>clusi<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoC<strong>on</strong>clusi<strong>on</strong>• There are lots of possibilities <str<strong>on</strong>g>to</str<strong>on</strong>g> work with <str<strong>on</strong>g>XML</str<strong>on</strong>g> under z/OS• <strong>IBM</strong> System z offers incredible performance with z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Services• z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> its high performance <str<strong>on</strong>g>to</str<strong>on</strong>g>ge<strong>the</strong>r with zIIP <str<strong>on</strong>g>and</str<strong>on</strong>g> zAAP is an extremely costefficient soluti<strong>on</strong>© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoLiterature• z/OS <str<strong>on</strong>g>XML</str<strong>on</strong>g> System Serviceshttp://www-03.ibm.com/servers/eserver/zseries/zos/xml/• <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OShttp://www-03.ibm.com/servers/eserver/zseries/software/xml/• <str<strong>on</strong>g>XML</str<strong>on</strong>g> Toolkit for z/OS V1.10 User's Guidehttp://www-03.ibm.com/servers/resources/ixmza290.pdf• Redbooks:– Using <str<strong>on</strong>g>XML</str<strong>on</strong>g> <strong>on</strong> z/OS <str<strong>on</strong>g>and</str<strong>on</strong>g> OS/390 for Applicati<strong>on</strong> Integrati<strong>on</strong>http://publib-b.boulder.ibm.com/abstracts/sg246285.html?Open– <str<strong>on</strong>g>XML</str<strong>on</strong>g> Processing <strong>on</strong> z/OShttp://www.redbooks.ibm.com/redpieces/abstracts/sg247810.html?open© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoFragen???http://www.redbooks.ibm.com/© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoRussianTraditi<strong>on</strong>al ChineseGraciasSpanishThaiThank YouEnglishArabicMerciFrenchObrigadoBrazilian PortugueseBedanktNederl<str<strong>on</strong>g>and</str<strong>on</strong>g>sSimplified ChineseDankeGermanJapanese© 2012 <strong>IBM</strong> Corporati<strong>on</strong>


From Zero <str<strong>on</strong>g>to</str<strong>on</strong>g> z Hero - z/OS und <str<strong>on</strong>g>XML</str<strong>on</strong>g> - Das perfekte DuoBackup© 2012 <strong>IBM</strong> Corporati<strong>on</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!