National Standards Framework Australian Standard 4590 Client Information Exchange AS4590 XML Model V2.0 Implementation Guidelines Version: 1.0 Status: Final September 2011 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Table of Contents 1. 1 PROJECT BACKGROUND ...................................................................................................................... 4 1.1 1.2 1.3 1.4 1.5 2 PRE-REQUISITES .................................................................................................................................... 4 IN SCOPE ................................................................................................................................................ 4 OUT OF SCOPE ....................................................................................................................................... 5 APPROACH ............................................................................................................................................. 5 PARTICIPANTS ........................................................................................................................................ 6 WHO SHOULD USE THIS GUIDE? ........................................................................................................ 6 3 DATA EXCHANGE BETWEEN PARTIES USING AS4590 STANDARD V2.0 – NO GOVERNANCE, NO INTEROPERABILITY OF DATA ............................................................................... 6 3.1 DATA EXCHANGE AND INTEROPERABILITY ........................................................................................... 6 3.2 INFORMATION EXCHANGE AGREEMENT – GUIDELINES ......................................................................... 7 3.2.1 Conformance Rules ........................................................................................................................... 7 3.2.2 Key factors to include in the Exchange Agreement .......................................................................... 8 3.2.3 Tools and applications to implement this Standard .......................................................................... 8 3.2.4 Implementation Considerations ........................................................................................................ 9 3.2.5 Basic steps to implementing the Standard ........................................................................................ 9 3.2.5.1 3.2.5.2 3.2.5.3 3.2.5.4 Principles ................................................................................................................................................. 9 Approach.................................................................................................................................................. 9 Parsing and Validation ........................................................................................................................... 10 Sample XML file for testing .................................................................................................................. 10 4 GUIDELINES TO EXTEND AS4590 STANDARD V2.0 TO ADDRESS SPECIFIC REQUIREMENTS ............................................................................................................................................. 10 4.1 4.2 DEFINE BUSINESS RULES AT THE RECEIVING APPLICATION END ........................................................... 10 USE DOUBLE PASS VALIDATION TO CONTROL THE XML SCHEMA STANDARD FOR SPECIFIC REQUIREMENTS ................................................................................................................................................. 11 4.3 EXTEND THE XML SCHEMA USING THE LANGUAGE CAPABILITIES ...................................................... 11 4.3.1 XML Schema Extension by Generic Element .................................................................................. 11 4.3.2 XML Schema Extension by Generic Element supported by Controllable Code List....................... 13 4.3.3 XML Schema Extension using Modular Schema Assembly ............................................................ 15 4.3.4 XML Schema Extension using Derive by Extension Mechanism for Elements ............................... 15 4.3.5 XML Schema Extension – Using Redefine Mechanism ................................................................... 17 4.3.6 XML Schema Extension – Using Wildcards for Elements .............................................................. 19 4.3.7 XML Schema Extension – Derive by Extension Mechanism for Attributes..................................... 21 4.3.8 XML Schema Extension – Controlling Code Lists outside of the XML Schema ............................. 25 4.4 EXTENDING THE XML SCHEMA – CONCLUSION .................................................................................. 25 5 GENERAL GUIDELINES FOR ANY PROJECT THAT IMPLEMENTS AS4590 STANDARD V2.0 26 5.1 BUSINESS PROCESS CONSIDERATIONS ................................................................................................. 26 5.1.1 Business Process Diagrams ............................................................................................................ 26 5.1.2 XML Transactions .......................................................................................................................... 26 5.1.3 Data Quality ................................................................................................................................... 26 Version:1.0 Status: Final 31/07/2017 Page 2 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 5.1.4 Data Currency and Re-validation ................................................................................................... 27 5.2 DATA CONSIDERATIONS ...................................................................................................................... 27 5.2.1 Schema Guidelines.......................................................................................................................... 27 5.2.2 Database Schemas .......................................................................................................................... 27 5.2.3 Physical Forms of the AS4590 V2.0 XML Model Logical Schema ................................................. 27 5.2.4 Current Data Stores ........................................................................................................................ 27 5.2.4.1 5.2.4.2 Data Cleansing ....................................................................................................................................... 27 Run-time Conversion ............................................................................................................................. 28 5.3 ENTERPRISE ARCHITECTURE CONSIDERATIONS ................................................................................... 28 5.3.1 Interfaces between Applications ..................................................................................................... 28 5.3.2 Commercial Off-the-Shelf (COTS) Applications ............................................................................. 28 5.4 APPLICATION ARCHITECTURE CONSIDERATIONS ................................................................................. 28 5.4.1 Practical User Interface Design for Display and Capture of Client Data...................................... 28 5.4.2 Reference User Interface Implementation ...................................................................................... 29 5.4.3 Compliant Physical Format ............................................................................................................ 29 5.4.4 Mapping Across Diverse Data Models ........................................................................................... 29 5.4.5 Payload for Web Services ............................................................................................................... 29 6 IMPLEMENTATION CHECKLIST....................................................................................................... 30 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 ADMINISTRATIVE ................................................................................................................................. 30 DEFINE PROJECT REQUIREMENTS ........................................................................................................ 30 DEFINE TECHNICAL REQUIREMENTS.................................................................................................... 30 DEFINE BUSINESS PROCESS REQUIREMENTS ....................................................................................... 31 XML TRANSACTION CHECKLIST ......................................................................................................... 31 DATA COMMUNICATION CHECKLIST .................................................................................................... 31 APPLICATION CHECKLIST .................................................................................................................... 31 OPERATIONS CHECKLIST ..................................................................................................................... 31 Version:1.0 Status: Final 31/07/2017 Page 3 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 1 Project Background The Cross Jurisdictional Chief Information Officer Committee (CJCIOC) and the Commonwealth’s Chief Information Officer Committee (CIOC) endorsed the technical review of the AS 4590 Standard V1.0 under the auspices of the National Standards Framework (NSF). Government agencies record and interchange information about Name and Address. A national agreement on the syntax that is directly aligned to the agreed Australian Standard will improve the exchange of information about Name and Address. The benefits of a national agreement on the syntax may include a reduction in deployment time, a reduction in the number of address errors and reduced costs. The existing version of the technical standard that was used for review can be found at: https://www.GovDex.gov.au/confluence/display/STANDARDS/Name+and+Address An environment for this review process was created under Govshare for the review committee members to contribute. This project was executed between April 2010 and July 2010 resulting in a revised AS 4590 Technical Standard (XML) V2.0 (AS4590 Standard V2.0.) that was formally voted on and adopted by the review committee members. Details of the voted model can be found at: https://www.GovDex.gov.au/confluence/display/RAS4590/Home On 12 August 2010 the CIOC agreed to, and provisionally endorsed the revised technical standard AS4590 Standard V2.0 as a standard under the NSF. At this meeting the CIOC also agreed to reconvene a Technical Review Group to assist with the development of an implementation road map. This phase of the project included the development of: an Implementation Guide for the AS4590 Standard V2.0; a Governance Framework for managing the AS4590 Standard V2.0; and a namespace regime This document’s focus is the Implementation Guide 1.1 Pre-Requisites It is expected that the readers of this document have a good understanding of the following: AS4590-2006 Standard from Standards Australia; AS4590 Standard V2.0 from https://www.GovDex.gov.au/confluence/display/RAS4590/Home; W3C XML Schema V1.0; and Unified Modelling Language The document is technical in nature, providing specific details on the data structures and formats of XML. It is assumed that users of this document have, or can access a certain level of technical knowledge. 1.2 In Scope The scope of this document is restricted to provide a set of implementation guidelines to assist stakeholders who are planning to implement the AS4590 Standard V2.0. It does not mandate how the Version:1.0 Status: Final 31/07/2017 Page 4 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines model should be implemented and instead provides a set of guidelines, to assist agencies and jurisdictions to interoperate client information data between themselves. 1.3 Out of Scope The following are outside the scope of this standard: Specification of business rules for interpretation, manipulation or use of the AS4590 Standard V2.0 elements. Internet security and transport standards, message structure and protocols, policies and protocols associated with the storage and transport of the client interchange data. Verification of the elements. Information sharing, data matching and electronic data exchange policies and processes. Data modelling, database design, and data mapping tools such as eXtensible Stylesheet Language (XSL). Data models other than AS4590 Standard V2.0. Mandatory and optional elements and attributes. AS4590 Standard V2.0 is not a data storage standard for client data. It does not define agency database fields, nor enforce database designs, although it may influence them. Each agency decides whether it stores its data in the data formats specified in AS4590 Standard V2.0 or whether it transforms its data when importing to and exporting from its databases. Where agencies store data elements as simple strings rather than as atomic or granular components, transformation will require splitting and mapping these simple strings into their correct atomic parts. 1.4 Approach The development of the guidelines follows the standards development process outlined in the NSF. Use of an online collaborative workspace will reduce the need for a large number of face to face meetings. Following are the steps adopted to support this process: Establishment of an online collaborative workspace for the project, including an on line discussion forum. A call for participants from jurisdictions and Commonwealth agencies to participate. Invitation to participants to provide input into the implementation guidelines. Creation of an implementation guidelines template and publish on the site. Holding face to face meetings with participants to discuss the guidelines and gather input. Production of a draft implementation guidelines document. Version:1.0 Status: Final 31/07/2017 Page 5 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Publication of the draft implementation guidelines document for review by the participants. Preparation and circulation of a final draft document incorporating input from the participants Management of the voting processes (Commonwealth and Inter-jurisdictional). Publication of the Implementation Guidelines 1.5 Participants There were a large number of participants; however national voting rights were limited to one vote per jurisdiction and one vote per agency in the Commonwealth. 2 Who Should Use This Guide? This Implementation Guide is to be used by agencies and jurisdictions who intend to use AS4590 Standard V2.0 as part of their project to exchange client data within a department or agency or with external agencies or jurisdictions. The guidelines could be used in any of the following scenarios: Any project within an agency that requires the implementation/reuse of AS4590 Standard V2.0 including to exchange client data with other agencies. Any national project that requires the implementation/reuse of AS4590 Standard V2.0. Any national project that is building a standard for the Australian Government and requires reuse of AS4590 Standard V2.0 to represent client data. 3 Data Exchange Between Parties Using AS4590 Standard V2.0 – No Governance, No Interoperability of Data 3.1 Data Exchange and Interoperability OASIS Customer Information Quality (CIQ) Technical Committee (TC) defines data interoperability as follows: “Get the right data to the right place at the right time in the right format with the right quality with the right security in the right context and with the right governance to applications, processes, or users” Version:1.0 Status: Final 31/07/2017 Page 6 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines It is the view of the CIQ TC that to enable interoperability of data between parties, the best practice is to parse the data elements into its atomic elements thereby preserving the semantics and quality of data. In this way the parties involved in data exchange will be in the best position to understand the semantics and quality of data thereby minimising interoperability issues. However, the method in which data will be exchanged between parties, whether in parsed or unparsed structure, must be negotiated between the parties to enable interoperability. One cannot expect interoperability to occur automatically without some sort of negotiation between parties (e.g. Information Exchange Agreement, whether internal or external to an organisation) involved in data exchange. Once information exchange agreements between parties are in place, then the data/information exchange process can be automated. Moreover, the entire information exchange and interoperability process should be managed through an effective governance process which should involve all the parties involved in the information exchange process. This enables effective and efficient management of any change to the information exchange process in the future. 3.2 Information Exchange Agreement – Guidelines The AS4590 Standard V2.0 was designed as a core set of building blocks to be used as a consistent baseline for creating exchange documents and transactions within Australian Government organisations. The goal of the AS4590 Standard V2.0 as conformance is for the sender and receiver of information to share a common, unambiguous understanding of the meaning of a basic core set of information (the components). The result is a level of interoperability that would be unachievable with the proliferation of custom schemas and dictionaries. To ensure interoperability it is strongly advised that an information exchange agreement/specification AS4590 Standard V2.0 be in place, with the agreement of the parties involved in the exchange. This agreement/specification should outline in detail the customisation of the AS4590 Standard V2.0. 3.2.1 Conformance Rules This section summarises the conformance rules that users should implement when using the AS4590 Standard V2.0. These rules are as follows: Instances must validate against the AS4590 Standard V2.0 reference schema. Schemas conformant to the AS4590 Standard V2.0 must import and reference the AS4590 Standard V2.0 Schema namespace or a correct AS4590 Standard V2.0 Schema Subset (which relates to the same namespace). If the appropriate component (type, element, or attribute) required for the application exists in the AS4590 Standard V2.0, use that component (i.e. do not create a duplicate of one that already exists). Be semantically consistent. Use AS4590 Standard V2.0 components in accordance with their definitions. Do not use an AS4590 Standard V2.0 component to represent data other than what its definition describes. Apply XML Schema extension rules correctly and consistently. Version:1.0 Status: Final 31/07/2017 Page 7 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 3.2.2 Key factors to include in the Exchange Agreement Following are some of the key factors that should be documented and agreed (if involving more than one party in data exchange) at application/system design time. This will enable automated interoperability of information/data at application/system run time. The rationale of having an exchange agreement is to ensure that the receiving party is well prepared and ready to process the data sent to it without any surprises. The key factors are: 1. A list of all elements of AS4590 Standard V2.0 XML Schemas (core, assembled, code list, data types XML schemas) that should be used in the exchange. This includes details of which elements are mandatory and which elements are optional during data exchange. 2. The order of occurrence of elements when assembling core components should be agreed between the parties. Stick to the order of occurrence or XML schema validation will fail. 3. The code list values should be used for each of the code lists, as parties may decide to use a subset of the code list or a superset or the default code list. These code list files should then be shared and implemented by all applications/systems involved in data exchange. Any changes to the code lists should be managed through a governance process that includes all parties involved in the exchange. 4. Any extensions to the default XML schemas. These should be clearly defined and agreed. It should be determined whether XML schema should be extended by using new attributes from a non-target namespace and if so, details of the additional attributes should be agreed. Any extensions to the XML schema model should follow the same design approach/guidelines used in the development of the AS4590 Standard V2.0. 5. Details of any business rules that should be implemented to constrain the AS4590 Standard V2.0 schemas. These should be applied consistently by all applications/systems involved in data exchange. 6. A breakdown of structured ‘vs. unstructured data. There should be a discussion of whether the data to be exchanged is structured or unstructured and what level it might be structured to. For example, address might be semi-structured to street details, suburb and state + post code. A fully structured address will contain street name, street type, street number, suburb, state, and post code. It is also important to ensure that the run-time environment that holds the XML artefacts (schemas, code lists, etc) is up to date. For example the environment should support recent versions and also older versions that might be used by parties until such time as they move to an updated version. Once the agreement is implemented, it is vital that the agreement should have a governance process to manage change effectively and efficiently. All parties involved in the data exchange process should be key stakeholders of the governance process. Any changes to the implementation guidelines should also occur through a governance process. 3.2.3 Tools and applications to implement this Standard A range of technical skills are necessary to create valid XML documents conforming to the AS4590 Standard V2.0. These skills include an understanding of XML file creation, validation and interpretation processes (as well as likely sources of error or failure); and an understanding of the logic and semantic meaning of the data elements to be included in validated exchange files. The particular tools and applications required to use AS4590 Standard V2.0 are: The data dictionary for the local database, available from the database administrator. Version:1.0 Status: Final 31/07/2017 Page 8 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Mapping tools to map between database schema and the XML schema. XML parser software, either open source or provided by the commercial vendor. 3.2.4 Implementation Considerations A range of considerations and decisions need to be made when preparing validated exchange files to represent the data elements in the AS4590 Standard V2.0. Once these decisions are made, the developer can proceed to write the code to prepare the validated exchange file in XML format. The first consideration is how to map AS4590 Standard V2.0 data elements to the fields that are stored and managed in agency databases. Database administrators should be able to assist with this mapping. The question to answer is: ‘Which fields in our agency database correspond to the data elements in the AS4590 Standard V2.0?’ Secondly, it is important to remember that different sets of data elements may be required for different services. Finally, the implementation ‘rules’ laid out in the AS4590 Standard V2.0 will need to be interpreted by the developer to ensure that the data elements are constructed correctly and put in the correct order. Additionally, it is the developer’s responsibility to ensure the resulting XML file is parsed without error so it conforms to the AS4590 Standard V2.0 specification. 3.2.5 3.2.5.1 Basic steps to implementing the Standard Principles The following principles should be followed in implementing this standard: Exchanging parties should agree, and confirm: an interpretation of the AS4590 Standard V2.0 and implementation considerations; to use the latest specification available (in order to avoid the generation of a separate schema requiring future maintenance and synchronisation with the latest specification); any additional exchange rules specific to the exchange; and any adjustment to the AS4590 Standard V2.0 file exchange implementation as and when necessary. 3.2.5.2 Approach Regardless of the extent to which implementation of this standard is automated by agencies, an appropriate data-sharing agreement and adequate software programming logic will be required. There are three phases to implementing the Standard. Creating a valid XML file for transmission to another agency by building an application that follows the rules of AS4590 Standard V2.0 and the exchange agreement. Checking the XML file for validity against the latest specification using a fit-for-purpose XML editing and parsing tool. Processing-logic applications should be programmed to ignore empty elements. Version:1.0 Status: Final 31/07/2017 Page 9 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Interpreting an XML file that came from an outside agency by using XPath to navigate the structure of the validated exchange file. 3.2.5.3 Parsing and Validation The parsing process helps ensure that the structure of the XML file is well-formed and validated (that is, any elements required by the exchange agreement are present and in the correct order and that the file conforms to the agreed AS4590 Standard V2.0 specifications. To ensure this, the following principle should be applied: before exchange, XML files should be parsed by the sending party, without error, using a parser agreed by the receiving party. However, on each exchange the XML files should be parsed by the receiving party as it is in their best interests to validate the incoming XML files before transferring them to a processing system. 3.2.5.4 Sample XML file for testing It is advisable to provide some sample XML files (validated against the AS4590 Standard V2.0) to the parties involved in the exchange. This will enable the parties to test them on their end and ensure that they are ready to process the exchange file. 4 Guidelines to extend AS4590 Standard V2.0 to address specific requirements One common problem in using an industry standard is that the standard is either generic or too limited to meet the specific requirements of an organisation. As a result of this, organisations often end up not implementing the standard and instead, either implementing their own standard or customising the existing standard. One of the key reasons for the lack of uptake of the AS4590 Standard V1.0 is that the standard did not meet the requirements of agencies. The design of the standard addresses this issue. The physical implementation model of a standard (e.g. an XML schema) should be extendable to meet the requirements. At the same time, it is important that the extended model is compliant with the standard. This means that the extended model can be a super set of the standard, but not a subset. Any extensions to a standard need to be governed properly, particularly when two or more parties/applications are involved in exchanging data between each other using the documents generated from the extended model. The parties should agree on the extensions to the standard that will be used to generate the document. In this way, the parties can define business rules that can handle these extensions. Therefore, a strong governance model should be implemented to manage this. This section will briefly describe the different strategies that can be considered to implement the AS4590 Standard V2.0 to meet specific business needs. 4.1 Define business rules at the receiving application end In cases where an XML schema standard is generic, it is strongly advised that an organisation/s not customise the standard. Instead an organisation/s should define and implement business rules at the application integration layer or at the application end that consumes the payload generated from the standard and that is exchanged. These business rules can control the payload before hitting the backend systems/applications in terms of fields that should be optional or mandatory, validation and verification of data, etc. This may require coding of the business rules in a programming language that is compliant with the environment. In this way, the exchanged payload is compliant with the standard. Version:1.0 Status: Final 31/07/2017 Page 10 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 4.2 Use double pass validation to control the XML schema standard for specific requirements Schemas describe the structural and lexical constraints on a document. Some information items in a document are described in the schema lexically as a simple value. Using XML technologies to validate and place constraints by defining rules on the XML schema standard outside of the standard, is the second pass of a two-pass validation strategy. The “first pass” confirms the structural and lexical constraints of a document and the “second pass” confirms the value constraints of a document. The “first pass” can be accomplished with an XML document schema language such as W3C Schema or ISO/IEC 19757-2 RELAX NG. The “second pass” can be accomplished with a transformation language such as a W3C XSLT 1.0 stylesheet or a Python program or using ISO/IEC 19757-3 Schematron schemas. ISO Schematron is a powerful yet simple assertion-based schema language used to confirm the success or failure of a set of assertions made about XML document instances. One can use ISO Schematron to express assertions supporting business rules and other limitations of XML information items so as to aggregate sets of requirements for the value validation of documents. Using Schematron, one can place constraints on the XML schemas without being non-compliant. A good case study on using Schematron to place constraints on a generic XML industry standard outside of it, can be found at: http://www.oasis-open.org/committees/ciq. 4.3 Extend the XML Schema using the language capabilities The W3C XML Schema Definition Language allows several powerful techniques for extending schemas to include or redefine elements and attributes. This section describes different strategies to extend and redefine the AS4590 Standard V2.0 XML schemas to enable development of robust information architectures that can accommodate enterprise information needs. 4.3.1 XML Schema Extension by Generic Element Let us take the following XML Schema (OriginalSchema.xsd) as an example. <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 1: OriginalSchema.xsd Version:1.0 Status: Final 31/07/2017 Page 11 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Listing 1 is shown in the figure below: The W3C XML Schema lets you extend existing type definitions to add additional sub-elements, adding additional elements to the data model's structure. You can apply extensions to the types of element or attributes. Given the example type definition in Listing 1, you can define the contents of elements that contain person name information. This definition will parse the document instance below (Listing 2) as valid: <?xml version="1.0" encoding="UTF-8"?> <Party xsi:noNamespaceSchemaLocation="OriginalSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <PersonName> <NameTitle>Mr</NameTitle> <GivenName>Steven</GivenName> <FamilyName>Smith</FamilyName> </PersonName> </Party> Listing 2. OriginalSchema.xml A good example of data that changes over time is code lists. A code list is a list of unique code values that have specific meanings, such as product descriptors, frequently used terms, and lists of countries or cities. These values are often stored in a database row that you can add to over time and use to populate choices in an application window. Listing 3 is an extension to OriginalSchema.xsd (Listing 1) and its last element “Other” that is added is sometimes called a generic element and is designed to allow any value to be inserted in the “PersonName” entity attribute, thereby allowing you to add new data to the PersonName list as needed over time. When validated, the <other> element is allowed, and you keep working with no changes to the schema required. <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> Version:1.0 Status: Final 31/07/2017 Page 12 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Other" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 3: OriginalSchema-ExtendedByGenericElement.xsd Listing 3 is shown in the figure below: Listing 4 is the document instance that is validated against Listing 3 schema. <?xml version="1.0" encoding="UTF-8"?> <Party xsi:noNamespaceSchemaLocation="OriginalSchema-ExtendByGenericElement.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PersonName> <NameTitle>Mr</NameTitle> <GivenName>Steven</GivenName> <FamilyName>Smith</FamilyName> <Other>PhD</Other> <Other>Junior II</Other> </PersonName> </Party> Listing 4. OriginalSchema-ExtensionByGenericElement.xml 4.3.2 XML Schema Extension by Generic Element supported by Controllable Code List One shortcoming of Listing 3 is that any data can be added to the “Other” element without any definition of metadata for the data. It would be useful if metadata is defined that will add context to the data. Listing 5 is an extension to OriginalSchema.xsd and provides a strategy to do this. <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> Version:1.0 Status: Final 31/07/2017 Page 13 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines <xsd:simpleType name="OtherType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="FatherName"/> <xsd:enumeration value="MaidenName"/> <xsd:enumeration value="Alias"/> </xsd:restriction> </xsd:simpleType> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="Other" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="Type" type="OtherType"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 5. OriginalSchema-ExtendedByGenericElementAndCodeList.xsd Listing 5 is shown in the figure below: Users can now define the metadata for the element “Other” using the “Type” enumeration list. A valid XML document instance for Listing 5 is shown below: <?xml version="1.0" encoding="UTF-8"?> Version:1.0 Status: Final 31/07/2017 Page 14 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines <Party xsi:noNamespaceSchemaLocation="OriginalSchema-ExtendByGenericElementAndCodeList.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PersonName> <NameTitle>Mr</NameTitle> <GivenName>Steven</GivenName> <FamilyName>Smith</FamilyName> <Other Type="FatherName">Gary Smith</Other> <Other Type="Alias">Bumbly</Other> </PersonName> </Party> Listing 5. OriginalSchema-ExtendByGenericElementAndCodeList.xml Now, the element “Other” has a metadata description using the attribute “Type”. 4.3.3 XML Schema Extension using Modular Schema Assembly This is the approach that was used to build the AS4590 Standard V2.0 to extend the base XML schema that was constructed as core reusable components. By using the reusable components, one can assemble new XML schemas to meet their specific business requirements using “Import” capabilities of XML Schema. If you are assembling schemas from the same namespace, use the “Include” feature to assemble them. If the schemas to be assembled are from different namespaces, use the “Import” feature to assemble them. Although adding modules is a form of extending a schema, the potential for building a set of dynamically assembled modules to create flexible schemas for different environments and applications is a powerful concept for optimising development and maintenance effort. The end result is a library of predefined, consistent declarations for developers to selectively use throughout the enterprise. Even so, special care should be taken to prevent naming collisions and other errors from occurring, especially in a single namespace. 4.3.4 XML Schema Extension using Derive by Extension Mechanism for Elements The W3C XML Schema allows the extension of existing type definitions to add additional subelements, to the data model's structure. Extensions can be applied to the types of element or attributes. Using the example type definition in Listing 6, the contents of elements that contain person name information can be defined. <xsd:complexType name="PersonNameType"> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> Listing 6. PersonName Complex Type Version:1.0 Status: Final 31/07/2017 Page 15 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Listing 6 is shown in the figure below: This definition will parse the instance below (Listing 7) as valid (assuming that the element <name> is defined using the PersonNameType type): <PersonName> <NameTitle>Mr</NameTitle> <GivenName>Steven</GivenName> <FamilyName>Smith</FamilyName> </PersonName> Listing 7. Instance Document of Listing 6 schema You can supply additional sub-elements to the complex type called PersonNameType using the example in Listing 8. In this example, you can see that a new complexType named PersonNamePlusDOB shows that the extension is to be applied to the base type PersonNameType (defined in Listing 6). Once extended, the base type will inherit the properties of the new extended type in addition to its own definition. In this case, the sub-element <DateOfBirth> is added to the PersonNameType element defined above, which already has as sub-elements the <NameTitle>, <GivenName> and <FamilyName> elements. <xsd:complexType name="PersonNamePlusDOB"> <xsd:complexContent> <xsd:extension base="PersonNameType"> <xsd:sequence> <xsd:element name="DateOfBirth"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" type="PersonNamePlusDOB" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> Listing 8. Extension to Listing 6 Schema Version:1.0 Status: Final 31/07/2017 Page 16 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines The <Party> element defined in Listing 8 uses the PersonNamePlusDOB, which has been defined to include all the sub-elements from its base type PersonNameType as well as the extension element <DateOfBirth>. This would allow the following (Listing 9) instance to validate with no errors: <Party xsi:noNamespaceSchemaLocation="OriginalSchema-DeriveByExtension.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PersonName> <NameTitle>Mr</NameTitle> <GivenName>Steven</GivenName> <FamilyName>Smith</FamilyName> <DateOfBirth>01 January 1982</DateOfBirth> </PersonName> </Party> Listing 9. Document instance for Listing 8 4.3.5 XML Schema Extension – Using Redefine Mechanism Types defined in one schema can be reused and redefined in another schema module. This behavior can be handy if you inherit a schema but want to modify the definition somewhat to work better in your environment. Suppose you're given an industry-standard schema that defines a ComplexType for the PersonNameType as in Listing 10. <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:complexType name="PersonNameType"> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" type="PersonNameType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 10. OriginalSchemaToBeRedefined.xsd Version:1.0 Status: Final 31/07/2017 Page 17 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Listing 10 is shown in the figure below: The PersonNameType in Listing 10 might not be enough for your local environment. Perhaps in your environment, you need to have another element called GenerationIdentifier which is mandatory. Consider a separate schema module that calls the original schema through the schemaLocation= attribute and redefines it with the code in Listing 14. <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:redefine schemaLocation="OriginalSchemaToBeRedefined.xsd"> <xsd:complexType name="PersonNameType"> <xsd:complexContent> <xsd:extension base="PersonNameType"> <xsd:sequence> <xsd:element name="GenerationIdentifier"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:redefine> <xsd:element name="Person"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" type="PersonNameType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 14. OriginalSchemaRedefined.xsd Because the PersonNameType has been redefined, it is still referred to using the same name, but when applied to the <PersonName> element, it ensures that the PersonName will always contain the GenerationIdentifier. Version:1.0 Status: Final 31/07/2017 Page 18 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines The figure of Listing 14 is shown below: 4.3.6 XML Schema Extension – Using Wildcards for Elements The W3C XML Schema allows you to declare some elements using wildcards, or elements that can contain just about any other element or attribute—declared or otherwise. The wildcard ANY type is a placeholder whose content might or might not be validated against a schema. Validation is controlled by setting the processContents attribute to one of the following levels: Skip: Do not validate contents. Lax: Validate only if you can find a corresponding declaration. Strict: Validate against the current schema. You define wildcards using the <xs:any> element for elements . The example in Listing 15 shows an element named <PersonName> that has a wildcard where subordinate element would be declared as <xsd:any namespace="##other" processContents="lax" minOccurs="0"/>. In other words, the <PersonName> element can contain any other elements as long as they have well-formed markup. You can add an external Schema and allow the elements to parse against it, and then set the processContent level to lax or skip or strict depending upon the level of validity. <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> Version:1.0 Status: Final 31/07/2017 Page 19 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines <xsd:any namespace="##other" processContents="lax" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 15. XML Schema with an element “ANY” Listing 15 is shown in figure below. Specifically, the example in Listing 15 shows the element declaration to contain a complex type that contains a sequence. The sequence contains the <any> element, which is the wildcard placeholder indicating that any element markup can appear at this location. If the processing of the contents of this element should be skipped, no schema validation is performed on the contents between the start and end tags. Therefore, the entire element can contain any well-formed markup using any element or attribute names. In this way, you can add content from other document models inside this element, thus extending the types of elements allowed overall in the document—albeit in a specific location. Let us say, that you want to use some elements from another schema (Listing 16) in a different name space as part of the schema in Listing 15. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://www.somelocation.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.somelocation.com" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="PersonDemographics"> <xsd:complexType> <xsd:sequence> <xsd:element name="Age"/> <xsd:element name="Sex"/> <xsd:element name="LicenseNumber"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 16. Schema from another Namespace Version:1.0 Status: Final 31/07/2017 Page 20 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines The data instance in Listing 17 is valid given this example. <?xml version="1.0" encoding="UTF-8"?> <Party xmlns:a="http://www.somelocation.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OriginalSchema-DeriveByANY.xsd"> <PersonName> <NameTitle>Mr</NameTitle> <GivenName>Steven</GivenName> <FamilyName>Smith</FamilyName> <a:PersonDemographics> <a:Age>28</a:Age> <a:Sex>Male</a:Sex> <a:LicenseNumber>8345678C</a:LicenseNumber> </a:PersonDemographics> </PersonName> </Party> Listing 17. Document Instance Valid for Schema in Listing 15. In the example in Listing 17, the element type <PersonName> is validated normally against the schema in Listing 15, but the contents of that element, the PersonDemographics elements are checked only for presence of corresponding declaration given that the process content is set to “lax”. If it was set to “skip”, even this will be ignored. Take particular care when you use wildcards if you expect to require validation or to allow lax validation when a schema can be found. Resources, such as alternative schemas to validate against, must be made available to the processor. Namespaces must be managed correctly. Also, using wildcards in conjunction with optional or repeatable elements can cause ambiguities and nondeterministic conditions. The simplest use of wildcards with processContents="skip" will allow you to avoid most of this complexity. 4.3.7 XML Schema Extension – Derive by Extension Mechanism for Attributes Similar to what we saw in section 4.3.4, W3C XML Schema lets you extend existing type definitions to add additional attributes to the data model's structure. You can apply extensions to the types of attributes. Let us use the XML Schema in Listing 18 to demonstrate this. Listing 19 extends Listing 1. Version:1.0 Status: Final 31/07/2017 Page 21 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="Type" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 18. Original Schema Listing 18 is shown in the figure below: Version:1.0 Status: Final 31/07/2017 Page 22 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:complexType name="PersonNameType"> <xsd:sequence> <xsd:element name="NameTitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FullName" type="xsd:string" minOccurs="0"/> <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="FamilyName" type="xsd:string"/> <xsd:element name="NameSuffix" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="Type" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="PersonNamePlusDOB"> <xsd:complexContent> <xsd:extension base="PersonNameType"> <xsd:sequence> <xsd:element name="DateOfBirth"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="PersonName" maxOccurs="unbounded"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="PersonNamePlusDOB"> <xsd:attribute name="ID" type="xsd:string"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> Listing 19. Extending Attributes Version:1.0 Status: Final 31/07/2017 Page 23 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines Listing 19 is shown in the figure below: In Listing 19, the PersonName element is extended by adding two additional attributes namely, an ‘ID” and “ANY” attribute (wildcard) using extension mechanism. You will also notice that Listing 18 is also extended by adding an additional element called “DateOfBirth” using extension mechanism as explained in section 4.3.4. The “ANY” attribute uses the same concept as described in section 4.3.6 for elements. The Process content is set to “lax” for this example. Listing 20 is an instance document that validates against the schema in Listing 19. <?xml version="1.0" encoding="UTF-8"?> <Party xmlns:a="http://www.somelocation.com" xsi:noNamespaceSchemaLocation="OriginalSchemaDeriveByExtension.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PersonName Type="Male" ID="ID1234" xmlns:a="http://www.somelocation.com" a:Category="Gold Customer"> <NameTitle>Mr</NameTitle> <GivenName>Steven</GivenName> <FamilyName>Smith</FamilyName> <DateOfBirth>01 January 1982</DateOfBirth> </PersonName> </Party> Listing 20. Instance document validated against Schema in Listing 19 Note that this document includes an attribute called “Category” which is from a different namespace and is ignored during validation. Version:1.0 Status: Final 31/07/2017 Page 24 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 4.3.8 XML Schema Extension – Controlling Code Lists outside of the XML Schema A code list (also called enumeration) defines a classification scheme and a set of classification values to support the scheme. For example, “Administrative Area” for an Address schema is a classification scheme. A set of classification values for this scheme could be: State, City, Province, Town, Region, District, etc. XML Schema describes the structural and lexical constraints on an XML document. Some information items in a document are described in the schema lexically as a simple value whereby the value is a code representing an agreed-upon semantic concept. The value used is typically chosen from a set of unique coded values enumerating related concepts. These sets of coded values are sometimes termed code lists. Code Lists are generally embedded in an XML schema and software application code are generated out of the XML schema, compiled and executed as part of an application. The compiled code includes the enumeration lists. When changes happen to a code list, the software application code has to be recompiled. This is often an issue for organisations that reuse code lists for many applications, or organisations that want to add additional value to the standard code list or restrict the values in the standard code lists. How do we add or restrict the values in the code list without the need to update the XML schema and recompile the software application code that uses the XML schema and the supporting code lists? The OASIS Code List Representation format, “Genericode”, is a single industry model and XML format (with a W3C XML Schema) that can encode/standardise a broad range of code list information. The XML format is designed to support interchange or distribution of machine-readable code list information between systems. Details about this specification are available at: http://www.oasis-open.org/committees/codelist. This approach keeps the enumeration list outside of the base XML schema. This Option uses a “two” pass validation methodology, whereby, the “first” pass validation, allows the XML document instance to be validated for its structure and well-formedness (ensures that information items are in the correct places and are correctly formed) against the entity XML schema, and the “second” pass validation allows the code list values in XML document instance to be validated against the genericode based code lists and this does not involve the entity schemas. Any change to the genericode based code list does not require changes to the software code (e.g. java object must be re-created) based on the entity schema as the entity schema reference the genericode based code list. A case study involving the use of this approach is at http://www.oasisopen.org/committees/ciq. 4.4 Extending the XML Schema – Conclusion As shown by the strategies discussed above regarding extending XML schemas, the designers of the W3C XML Schema language had extensibility in mind when they created the standard. Take care to observe the rules for each extension type in order for them to work. These powerful techniques, although only working in a single namespace, can allow tremendous flexibility—especially when you work with schemas used in distributed and diverse environments. However, the most important aspect is that whatever extensions are done to the base XML Schema, ensure that a governance model is in place to ensure that parties involved in the data exchange process are kept informed of these extensions to achieve interoperability of data. It will be valuable to pay attention to the emerging XML Schema version 1.1 standard being produced in the W3C XML Schema Working Group. The schema has some interesting changes to the wildcards and other constructs that might affect the examples shown here. Version:1.0 Status: Final 31/07/2017 Page 25 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 5 General Guidelines for any project that implements AS4590 Standard V2.0 The Australian Government has developed a comprehensive Architecture Framework1 to assist in the delivery of more consistent and cohesive services to citizens and support cost-effective delivery of Information and Communications Technology (ICT) services by government. The Framework describes reference models that form the basis of a common language between agencies and structure a repository of architectural artefacts (including standards, guidelines, designs and solutions). The models may be utilised by agencies to deliver an increasing range of whole-of-government services. The Framework contains a set of inter-related ‘reference models’ designed to facilitate cross-agency analysis and the identification of duplicate investments, gaps and opportunities for collaboration within and across agencies. Collectively, the reference models comprise a framework for describing important elements of the architecture in a common and consistent manner. It is strongly advised that agencies refer to this work extensively wherever appropriate rather than duplicate or re-invent. In addition to the above framework, the following section provides “General” Guidelines for any project that intends to implement the AS4590 Standard V2.0 as part of the project. The following points cover business process, data, enterprise architecture and application architecture considerations while implementing a project involving the AS4590 Standard V2.0 5.1 Business Process Considerations 5.1.1 Business Process Diagrams Business Process diagrams should be used to define the business processes that the data exchange parties will use to perform the business function when exchanging AS4590 data. 5.1.2 XML Transactions The Business Process diagrams can be used to define the XML transactions (e.g. CreatePartyData, SendPartyData, UpdatePartyData) that will be exchanged by the data exchange parties. Note that the AS4590 Standard V2.0 does not define any transaction types. Data exchange parties need to identify each data element within each XML transaction that will be transferred. For each data element the data exchange parties need to identify: the data format of the data element; if the data element is mandatory, optional, or forbidden; possible default values for the data element if absent; and relationships between/among multiple data elements 5.1.3 Data Quality Entering valid data (e.g. name and address data) at the earliest opportunity is vital since correcting data is an expensive undertaking after it has already been entered into IT systems, and more so after the data has propagated to other systems. In order to improve data quality at the earliest opportunity, ensure that: 1 . Australian Government Architecture Reference Model, V2.0, AGIMO, December 2009 Version:1.0 Status: Final 31/07/2017 Page 26 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 1. data captured interactively (during online web interactions, a phone conversation, or face to face) is entered into an IT system that is immediately validated wherever possible by a set of business rules. For example, with name and address data, the party can be asked to provide the right data if the validation fails during point of data entry. 2. confirmation of the currency and validity of address held on government records at each customer contact is a common practice in customer contact business processes. This ensures ongoing address data currency as well as validity, without incurring additional cost. 5.1.4 Data Currency and Re-validation Once acquired and recorded data in an IT system can become out of date due to: the data no longer being valid (eg. a person or organisation has moved to another address); or infrequent changes to data (e.g. occasional changes to street numbers, names and/or suburb boundaries). The effort required for maintaining the currency of data after initial capture needs to be weighed against the derived business benefits. Due consideration of business and legislative regulations, including compliance with privacy legislation and regulations, may also need to be factored into data collection. 5.2 Data Considerations 5.2.1 Schema Guidelines The AS4590 Standard V2.0 can assist in designing application data and database schemas. 5.2.2 Database Schemas Databases holding client data can be used to store address as per AS4590 Standard V2.0 schema and logical data model. The physical data model can be mapped to the appropriate database being used. 5.2.3 Physical Forms of the AS4590 V2.0 XML Model Logical Schema The AS4590 Standard V2.0 logical schema client data is the recommended standard. Its physical incarnation may take any form, such as an XML document, a COBOL copybook and its corresponding data file, or a comma-separated data file. However, data model mapping should be specified when converting to and from another data model. 5.2.4 5.2.4.1 Current Data Stores Data Cleansing When upgrading current applications to comply with AS4590 Standard V2.0, it may be necessary to conduct address data cleansing, most notably when: the data model (format, semantics and validity) of existing client data deviates substantially from AS4590 Standard V2.0; and/or the existing client data has not been validated (e.g. against a reference address file, say PAF) Costs for utilising client data (and in particular address data) that require cleansing should be included in the business case of the application which uses the data. Version:1.0 Status: Final 31/07/2017 Page 27 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 5.2.4.2 Run-time Conversion For non-compliant current data stores, feasibility of using a run-time conversion to AS4590 Standard V2.0 where it suits the transaction processing profile of an interactive application should be evaluated as an option (viz. number of updates vs. queries, transaction volumes). 5.3 Enterprise Architecture Considerations 5.3.1 Interfaces between Applications Client data is to be interchanged between IT systems using the standard described in AS4590 Standard V2.0 This approach should be adopted because it: provides maximum semantic compatibility between interfacing systems; eliminates effort required in semantic mapping, and includes a physical format which can be selected on the basis of technology choices appropriate for the interfacing systems. 5.3.2 Commercial Off-the-Shelf (COTS) Applications When purchasing commercial off-the-shelf applications, the following principles should be applied: 1. Vendors should be asked to comply with the AS4590 Standard V2.0 during the Request for Information, Request for Proposal, and Request for Tender processes. 2. Preference should be given to those offerings with Australian versions supporting the Australian standards, specifically the AS4590 Semantic Standard from Standards Australia. 3. The street address data captured by the COTS application must be validated against the designated standard for street address data validation (Vicmap Address Dataset or G-NAF). 4. The client data interchange must comply with the requirements stipulated in the AS4590 Standard V2.0. Where a COTS application does not explicitly support or cannot be easily customised to align with the AS4590 Standard V2.0, its deployment can result in additional costs (both initial and ongoing) in developing appropriate inbound and outbound interfaces. These costs should be included in evaluating the package options and the overall business case of the application. 5.4 5.4.1 Application Architecture Considerations Practical User Interface Design for Display and Capture of Client Data The AS4590 Standard V2.0 consists of a large number of component fields such as name and address. These fields should not be displayed as separate fields either on a screen or on a form. User interfaces involving these fields should be designed as per good useability practices. User interfaces, on-screen and in printed forms, should display these fields in a pragmatic manner with few significant components. Validation and parsing by application logic should ensure that supplied addresses map to and comply with the AS4590 Standard V2.0 Version:1.0 Status: Final 31/07/2017 Page 28 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 5.4.2 Reference User Interface Implementation A re-usable user interface component can be developed that lets the user choose the broad category of party name (e.g. person, organisation) or address being entered (e.g. residential, business, or rural). For each category, these can: 1. Display a user-friendly layout for data-entry, taking into account any specific fields that are mandatory or not-applicable; 2. Carry out address data validation appropriate for each category; and 3. Return validated client data, compliant with AS4590 Standard V2.0. Such a component can be made available as a reference implementation for re-use. Technology specific versions of the user interface implementation may be developed: e.g. a version for Windows Desktop or for web browsers. 5.4.3 Compliant Physical Format Client data complying with the logical schema of AS4590 Standard V2.0 can be transformed to and from various physical formats (e.g. comma-separated values, XML or COBOL copybook) through simple tools. All such physical formats are considered to comply with this standard. 5.4.4 Mapping Across Diverse Data Models Please be aware that mapping from one data model to another, such as from AS4590 Standard V2.0 to a custom format, may involve one of the following: 1. Manual data cleansing where rules for automated data transformation cannot be developed due to semantic mismatch; or 2. Format conversions and/or table look-ups (for code conversion, street name renaming, or substitutions). 5.4.5 Payload for Web Services It is a common myth that web services provides “loose coupling”. The reason being that certain interfaces are industry standards based i.e. they use WSDL as the interface language written in XML. However, loose coupling cannot be achieved if the payload of the service is in proprietary format as this will result in data mapping and transformation process thereby resulting in tight coupling. To enable loose coupling, it is important to provide loose coupling of the information components (i.e. the payload). Using AS4590 Standard V2.0 schema as the standard payload for client data as part of a web services provides the opportunity for loose coupling. Version:1.0 Status: Final 31/07/2017 Page 29 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 6 Implementation Checklist Please use the following implementation checklist as a guideline when planning and implementing the use of AS4590 Standard V2.0 schemas in a project. 6.1 Administrative Create the required legal agreement between or among data exchange partners. Establish project objectives, scope. Establish project contacts: business, technical, operational. Develop an implementation project plan. Establish a governance structure with key stakeholders involved. 6.2 Define Project Requirements Define business process and transaction requirements. Define error-processing requirements. Define problem resolution requirements. Define security requirements. Confidentiality. Integrity. Availability. Non-repudiation. Define application interface requirements (proprietary to each data exchange partner). Define transaction storage and audit requirements. 6.3 Define Technical Requirements Define each Action and Signal message that will be exchanged. Define field by field requirements for each Action (business) message. Define field by field requirements for each Signal message. Define data communication and network (firewall, router) access requirements. Define transmission protocol (HTTP(S), SMTP, other) requirements. Define what will be encrypted. Define use of digital signatures. Define use of the message "digest" for non-repudiation. Define business recovery requirements. Define hardware requirements. Define software requirements. Version:1.0 Status: Final 31/07/2017 Page 30 of 31 National Standards Framework AS4590 XML Model V2.0: Implementation Guidelines 6.4 Define Business Process Requirements Define internal business process requirements (proprietary to each data exchange partner) . Train internal staff (proprietary to each data exchange partner). 6.5 XML Transaction Checklist Develop, test, and implement the creation of each transaction. Develop, test, and implement the acceptance and processing of each transaction. 6.6 Data Communication checklist Install, configure, test, and implement each network component. Exchange IP addresses/names. Configure firewalls, routers, and other communications equipment. 6.7 Application Checklist Define, build/install, test, and implement application interfaces (proprietary to each data exchange partner). Define, build/install packaging, unpackaging processes. Define, build/install, test, and implement error processes. Implement application support processes. 6.8 Operations Checklist Install, configure and implement hardware. Install, configure, and implement software. Install, configure, and implement network components. Install, configure, and implement data storage and backup. Define, test, and implement business recovery processes. Train operation and network support personnel. Version:1.0 Status: Final 31/07/2017 Page 31 of 31
© Copyright 2026 Paperzz