NIEM Practical Implementer’s Course
Lesson 1 – Anatomy of an XML Exchange
- XML: eXtensible Mark‐up Language used to define and serialize data as well as define schemas, transformation rules, web services and visual presentation.
- Message: One or more XML documents containing the data to be shared.
- Publisher: An entity / software program that initiates a “One Way” exchange.
- Subscriber: An entity / software program that receives messages in a “One Way” exchange.
- Requestor: An entity / software program that initiates a “Two Way” exchange.
- Responder: An entity / software program that receives “Request Messages” and returns “Response Messages” in a “Two Way” exchange.
- Web Service: A type of program that allows a remote system (client) to interact with a program on a local system (server) using XML messages.
- XML Document (.xml): A file that contains actual data and conforms to the rules of XML syntax (also known as an “Instance Document”).
- XML Schema Document (.xsd): A set of rules to which an XML document must conform in order to be considered “valid”.
- Web Service Description Language (.wsdl): Pronounced “wiz‐dull”, a document (containing XML) that describes the functionality of a Web Service (like a “Service Contract”).
- XML Stylesheet (.xsl): An XML document that describes how XML data should be visually rendered.
- XML Stylesheet Transformation (.xslt): An XML document that defines the rules by which a file defined by one schema is transformed (mapped) to a file defined by another schema.
- One-Way (Two-Party) Exchange Pattern (Publish/Subscribe)
- Messages are pushed by a publisher directly to oneor more subscribers
- Messages can be transactional or batch
- Messages are transport neutral (web service, FTP, email, etc.)
- Messages are essentially “fired and forgotten”
- Pattern is very scalable as publisher is insulated from diverse subscriber interfaces
- Two-Way Exchange Pattern (Request/Response)
- Requestor sends an XML message requesting specific information
- Responder replies with an XML message containing the requested information
- Typically implemented via web services
- Response is typically synchronous (occurs at about the same time)
- Federated Query
- Single request message may yield numerous response messages
- Not all respondents may have data for every request
- Typically built using a “Message Broker” device, insulating requestor
- Message Broker aggregates multiple responses to requestor
Note: Information is being shared under the Creative Commons Attribution-ShareAlike 2.0 (CC BY-SA) license. Original content was created by NIEM course instructors Jenness, Owen, and Carlson.