280 likes | 497 Views
XML/EDI Repositories. Martin Bryan The SGML Centre www.sgml.u-net.com. What is XML/EDI?. The use of XML for business-to-business electronic data interchange Based on traditional EDI processes and existing semantic definitions UN EDIFACT, ANSI X12 or domain specific
E N D
XML/EDI Repositories Martin Bryan The SGML Centre www.sgml.u-net.com
What is XML/EDI? • The use of XML for business-to-business electronic data interchange • Based on traditional EDI processes and existing semantic definitions • UN EDIFACT, ANSI X12 or domain specific • May or may not be based on existing message structures • May be based on existing message implementation guidelines
On XML DTDs and Schemas • A reminder of Heikki Mannila's* point: "One of the problems of using XML as a data exchange format is that DTDs only tell you the name of the element or attribute (and possibly the names of some of the permitted values of attributes). They say nothing about the meaning of this name." * Micorsoft Corp.
The possible roles of a repository • To identify existing message definitions that meet user requirements • Need to know the purpose of the message • To allow users to design new messages by making minimal modifications to existing messages • Customising or extending existing message • To allow users to design new messages using components that are associated with known processes
Underlying model 2. Transaction Organization 1 Organization 2 • Establish relationship between business process and repository definitions • Identify relationship and any associated processes Repository
Operations • a) Identify required business process b) Identify equivalent process in repository c) Record repository keys in DTD • a) Transmit DTD b) Transmit messages referencing the DTD • a) Use repository keys to retrieve information about relevant process b) Identify equivalent local business process
Keeping the relationships simple • Only pass the reference to the repository information, not the information itself • Could be in separate file, using links* <!ELEMENT My-thing (#PCDATA)> <!ATTLIST My-thing href CDATA #FIXED 'handle://www.standards-body-x.org/ repository-y/glossary-z#id(A003459)' %Simple-XLink-Attributes;> *Does not work for link elements
The overall process* *As defined in the XML/EDI Group's Repository white paper
Who's repository is it anyway? • Handle server does not need to store the DTDs • Acts as standard reference method for multiple repositories • Repositories can serve multiple communities • Common API allows repositories to report information in standardized format
What language must I use? • Repositories must become multilingual • Multilingual glossary definitions • Single identifier for all definitions • Object naming up to user communities • Objects can conform to multiple definitions • Multiple identifiers act as bridge between repositories • Requires use of extended links
Multiple ownership • Need to allow for ownership hierarchies • UN EDIFACT • Industry-based European Expert Groups • Regional groupings • National applications • Company agreements • Naming may differ between owners • Element names need not reflect semantic names
How can we handle this? • Use XML namespaces <!ATTLIST my-local-name xmlns:EDIFACT CDATA "http://www.unece.org/D99A" xmlns:Transport CDATA "http://www.EEG2.eu/IFT" EDIFACT:Segment CDATA #FIXED "FTX" Transport:DataSet CDATA #FIXED "Notes" … • Use XML links? • Simple link add-ons or extended links? • Referencing externally managed pointers to a set of relationships between semantic sets?
Benefits of using a repository • Self documenting XML DTDs • Code reusability • Sharing presentation rules • XSL modules can be based on the repository link attribute rather than the local name of the element • Message elements with the same identifiers are candidates to share business processes • Can automate process of associating message subsets with processes
Identifying existing DTDs • Need to interrogate metadata of DTD • Who generated it, when and why? • What types of processes is it defined for? • Can it be modified or subsetted? • Can its code lists be redefined? • What documentation is associated with it? • Need to be able to reference the source • Using public and system URLs • How will updates be managed?
Existing DTD repositories • XML.org Specifications Catalog • Organization for the Advancement of Structured Information Standards (OASIS) • http://www.xml.org/xmlorg_catalog.htm • DTDs and Schemas • XML.org Recommendations • CommerceOne Common Business Language • DataChannel Portal Markup Language • Microsoft's BizTalk
BizTalk • BizTalk Framework mostly concerned with routing of messages • BizTalk defined in terms of Microsoft's proprietary XML-Data schema format • Little control over who submits schemas • Categorization currently limited • Construction, Education, Finance and insurance, Information, Manufacturing, Professional/Scientific and Wholesale
Modifying existing DTDs • Have parameter entities been used to allow model customisation? • Removal of optional components • Defining new mandatory components • Have parameter lists been used for enumerated code lists? • Can you reference an external code list? • Can you subset internal code lists?
Creating new DTDs • How can I determine which repository objects to use? • Classification of object purpose within repository glossary • Metadata or internal documentation? • Identifying where previously used • What can I call it? • What is the referenceable unit in the repository? • Need to be able to reference all subelements and their attributes
Common Business Language • CBL 2.0 Reference Guide • http://www.marketsite.net/xml/cbl/reference.html • Limited set of messages • Purchase Order/Purchase Order Response • Order Status Request/Order Status Result • Invoice • Availability Check Request/Result • Price Check Request/Result • Cataloguing and Pricing information exchange
What I really really want… • XML DTDs and/or XML Schemas • Elements for defining processes • Personal Identification • Family name, given name, initials, title • Exchange addresses • Name/number, street, town, region, country • Identify product requirements • Item id, item name, quantity, delivery date • Links to existing processes • APIs for local databases • APIs for process controls
… and exchangeable semantics • ISO 11179 Data element specifications? • Due for updating • Standardized ontology descriptors? • Synonyms (but not antonyms and homonyms) • Hypernyms and hyponyms (broader and narrower terms) • Holonyms and meronyms (wholes and parts) • XML/EDI group's repository API?
Tell me more • XML/EDI Group Repository Initiative • http://www.xmledi.org • Read their Repositories White Paper • http://www.xmledi.com/repository/xml-repWP.htm • Join their Repositories working group • http://www.xmledi.com/repository • CEN/ISSS Defining and Managing Semantics and Datatypes project group • http://www.cenorm.be/isss/Workshop/ec/projects.htm