200 likes | 221 Views
SYSTEK. Information Technology. Application XML Enabling A Holistic Approach. London. Australia. Sun Solaris. IBM S/390. Japan. Hong Kong. HP HP-UX. Microsoft NT. Era of Integration. So Many Systems, So Many Platforms!. Sun SPARC. Sun SPARC. London. IBM S/390. Japan. Hong Kong.
E N D
SYSTEK Information Technology Application XML Enabling A Holistic Approach
London Australia Sun Solaris IBM S/390 Japan Hong Kong HP HP-UX Microsoft NT Era of Integration So Many Systems, So Many Platforms!
Sun SPARC Sun SPARC London IBM S/390 Japan Hong Kong IBM AS/400 IBM RS6000 Reign of the Internet Singapore Hong Kong Legacy applications lack access to the Internet!
Sun SPARC Sun SPARC London IBM S/390 Japan Hong Kong IBM AS/400 IBM RS6000 Towards a Unified Data Exchange Solution Singapore Hong Kong Many Systems, Many Platforms but One Internet Enabled Interface
History XML (Extensible MarkupLanguage) A tag-based textual formatting language • document mark-up or data structuring Based on SGML (Standard Generalised Markup Language) • became international standard ISO 8879 in 1986 Standard from W3C (World Wide Web Consortium) • recommendation XML version 1.0 (February 1998) Example • <Person> • <Name>Daniel Chan</Name> • <Title>Chief Technology Officer</Title> • <Company>Systek I.T. Ltd.</Company> • </Person>
HTML, XML, and SGML are one big family! Meta Language simplifies SGML XML defines XML Document / Message Definitions Meta Data Language HTML XHTML Use of the Language XML Documents / Messages Data Web Pages Comparison of SGML and XML www.w3.org/TR/NOTE-sgml-xml-971215
ezXML Approach for the Whole Development Cycle Design Management Implementation Integration
Convenience from using ezXML Java API Generator • // Get member element Payment of element Order • ElementClass_Payment payment = order.get_Payment(); • // Get member element CreditCard of element Payment • ElementClass_CreditCard creditCard = payment.get_CreditCard(); • // Get element attribute CardType of element CreditCard and display its value • System.out.println("Card Type: " + creditCard.getAttr_CardType()); Attribute Value A String of “Visa”, “Master”, or “AmericanExpress”
Extracting Data from Files using ezXML Text Gateway A rule named GOODS_INFO MAKE %GOODS_INFO { GOODS_INFO [ NAME [$name], QUANTITY [$quantity] ] } MATCH { #ROW(+1) #COL(0) ~‘Product Name:’ (100b)? #EVAL($name, 50x) #ROW(+1) #COL(0) ~‘Quantity:’ (100b)? #EVAL($quantity, 20n) } IGNORE %BETWEEN_RECORD MATCH { #REJECT(~‘Customer ID’) #ROW(+1) #COL(0) } XML message construction Pattern in the text file to be matched A sub-pattern to be matched Data to be extracted from a matched pattern A rule with no output Efficient skipping driven by matched pattern
Translating XML Data using ezXML Translation Engine <ezXML_RULE name="test9_program"> <MATCH_TEMPLATE mapping-name='HOUSE_TABLE' name='HouseTable' type='DUMMY'> <MATCH_TEMPLATE name='HouseRecord' type='DUMMY‘> <MATCH_TEMPLATE name='HouseID' type='DUMMY'> <MATCH_TEMPLATE name='houseID1' from='#PCDATA' type='VARIABLE'/> </MATCH_TEMPLATE> <MATCH_TEMPLATE name='HouseName' type='DUMMY'> <MATCH_TEMPLATE name='houseName' from='#PCDATA' type='VARIABLE'/> </MATCH_TEMPLATE> </MATCH_TEMPLATE> </MATCH_TEMPLATE> <MAKE_TEMPLATE mapping-name='RESULT' name='Group' type='DUMMY' multiple='TRUE'> <MAKE_TEMPLATE name='GroupName' type='DUMMY' multiple='FALSE'> <MAKE_TEMPLATE name='groupName' type='VARIABLE' multiple='FALSE'/> </MAKE_TEMPLATE> <MAKE_TEMPLATE name='Staff' type='DUMMY' multiple='TRUE'> <MAKE_TEMPLATE name='StaffName' type='DUMMY' multiple='FALSE'> <MAKE_TEMPLATE name='staffID2' associate='staffID1' type='VARIABLE' multiple='FALSE' hidden='FALSE'/> <MAKE_TEMPLATE name='staffName' type='VARIABLE' multiple='TRUE'/> </MAKE_TEMPLATE> <MAKE_TEMPLATE name='HouseName' type='DUMMY' multiple='TRUE'> <MAKE_TEMPLATE name='houseID2' associate='houseID1' type='VARIABLE' multiple='FALSE' hidden='FALSE'/> <MAKE_TEMPLATE name='houseName' type='VARIABLE' multiple='TRUE'/> </MAKE_TEMPLATE> </MAKE_TEMPLATE> </MAKE_TEMPLATE> </ezXML_RULE> A hierarchy of templates reflecting the structure of the input message Element to be matched Variable to hold matched data A hierarchy of templates to construct the output message
Performance & Complexity • Testing Environment • Celeron 400MHz with 128MB RAM • Windows NT Workstation 4.0 (SP5) with JDK1.3.0 • JAXP 1.1 - from Sun Microsystems Inc. • XML4J 3.1.1 - from IBM Corp. • Input XML message is a SWIFT message in XML format of size 2763 bytes
Conclusions A holistic approach that addresses the need of the whole development cycle XML design becomes a part of application design right at the beginning With ezXML Designer, designs can be formulated using only UML concepts Just like data, designs need to be managed With ezXML DTD Editor, designs can be changed as well as stored in and retrieved from either a file system or a database system DOM and SAX approaches to XML application development is too low level Significant productivity gain can be obtained using a higher level interface to XML With ezXML Java API Generator, high level API can be generated for use by Java applications
More information … www.systekit.com/ezxml/