An XSD 1.1 Schema Validator Written in XSLT 3.0

Total Page:16

File Type:pdf, Size:1020Kb

An XSD 1.1 Schema Validator Written in XSLT 3.0 An XSD 1.1 Schema Validator Written in XSLT 3.0 Michael Kay, Saxonica Abstract The paper describes an implementation of an XML Schema validator written entirely in XSLT 3.0. The main benet of doing this is that the validator becomes available on any platform where XSLT 3.0 is implemented. At the same time, the experiment provides a valuable test of the performance and usability of an XSLT 3.0 implementation, and the experience gained from writing this application can feed back improvements to the XSLT processor that will benet a large range of applications. 131 Introduction 1. Introduction This paper describes the outline design of an XML Schema (XSD 1.1) validator written entirely in XSLT 3.0. There were two reasons for undertaking this project: • Firstly, we see a demand to make implementations of the latest XML standards from W3C available on a wider variety of platforms. The base standards (XML 1.0, XPath 1.0, XSLT 1.0, XSD 1.0) that came out between 1998 and 2001 were very widely implemented, but subsequent renements of these standards have seen far less vendor support. One can identify a number of reasons for this: perhaps the rst versions of the standards met 90% of the requirements, and the market for subsequent enhancements is therefore much smaller; perhaps the early implementors found that their version 1 products were commercially unsuccessful and they therefore found it dicult to make a business case for further investment. In the case of products like libxml/libxslt produced by enthusiasts working in their spare time, perhaps the enthusiasts are more excited by a brand new technology than by version 2 of something well established. Whatever the causes, XSD 1.1 in particular only has three known implementations (Altova, Saxon, and Xerces) compared with dozens of implementations of XSD 1.0, despite the fact that there is a high level of consensus in the user community that the new features are extremely useful. • Secondly, as editor of the XSLT 3.0 specication and developer of a leading implementation of the language, I felt a need to "get my hands dirty" by developing an application in XSLT 3.0 that would stretch the capabilities of the language. I am ofen called on to provide advice to XSLT 3.0 users, and even now that the language specication is complete, I nd myself designing extensions to meet requirements that go beyond the base standard, and this can only be done on the basis of personal experience in using the language "in anger" for real applications. In addition, the usability of a language compiler depends in high measure on the quality of diagnostics available, and improving the quality of diagnostics depends entirely on a feedback process: you need to make real programming mistakes, spot when the diagnostics could be more helpful, and make the required changes. More specically, Saxonica has released an implementation of XSLT 3.0 written in Javascript to run in the browser, and an obvious next step is to extend that implementation to run under Node.js on the server. But for the server environment we need to implement a larger subset of the language, and so the question arose, should we write a version of the schema processor in Javascript? However, Javascript is not the only language of interest: we're also seeing demand for our technology from users whose programming environment is C, C ++, C#, PHP, or Python. Since (using a variety of tools) we've been trying to deliver XSLT 3.0 capability in all these environments, a natural next step is to try and deliver a schema processor that will run on any of these platforms, by writing it in portable XSLT 3.0 code. Architecturally, there are two parts to an XSD schema processor: • The rst part is the schema compiler. This takes as input the source XSD schema documents, and performs as much pre-processing of this input as it can prior to the validation of actual XML instances against the schema. This preprocessing includes verication that the schema documents themselves represent a valid schema, and other tasks such as expanding defaults. The XSD specication from W3C describes a "schema component model" which is an abstract description of a data structure that can be used to represent a compiled schema; and it gives detailed rules for translating source schema documents to this abstract data model. The Saxon schema processor follows this approach very closely, and it also denes a concrete XML-based representation of the schema component model which realises the output of the schema compilation phase in concrete form. This output in fact contains a little more than the SCM components and their properties; it also contains a representation of the nite state machines used to implement the grammar of complex types dened in the schema. • The second part is the instance validator. The instance validator takes two inputs: the compiled schema (SCM) output by the schema compiler, and an XML instance document to be validated. In principle its output is a PSVI (post schema validation infoset) containing the instance document as a tree, decorated with information derived from schema validation, including information identifying nodes that are found to be invalid. In practice, in the Saxon implementation, there are two outputs: a validation report, which in its canonical form is an XML document listing all the validation errors that were found, and a tree representation of the instance document with added type annotations, in the form prescribed by the XDM data model used by XPath, XQuery, and XSLT. Because the Saxon schema validator is primarily designed to meet the schema processing requirements of XSLT and XQuery, it only delivers the subset of PSVI required in that environment: this means that the output XML tree is only delivered if it is found to be valid, and the only tree decorations added by the validator are references from valid element and attribute nodes to the schema types against which they were validated. In efect, if the input is valid, then the output of the Saxon schema validator is a representation of the input XML instances with added type annotations; while if the input is invalid, then the output is a report listing validation errors. The sofware described in this paper is an XSLT 3.0 implementation of the instance validator. It would certainly be possible to write an XSLT 3.0 implementation of the schema compiler, and we may well do that next, but we haven't tackled this yet. Moreover, the only output of the instance validator described here is a validation report showing the validation errors. The sofware doesn't attempt to produce an XDM representation of the input document with type annotations. In fact, this isn't possible to do using standard XSLT 3.0 without extensions. XSLT 3.0 has no instructions to output elements and attributes with specic type annotations; the only way it can generate typed output is by putting the output through a schema validator, which is assumed to exist as an external component. So to write that part of the validator in XSLT 3.0, we would need to invent some language extensions. 132 The Validation Task 2. The Validation Task In this section we describe what the validator actually does. Let's start with an example of a very simple schema, like this: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="books"> <xs:complexType> <xs:sequence> <xs:element ref="book" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:key name="isbn-key"> <xs:selector xpath="book"/> <xs:field xpath="@isbn"/> </xs:key> </xs:element> <xs:element name="book"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="publisher" type="xs:string"/> <xs:element name="author" type="xs:string" minOccurs="1" maxOccurs="5"/> <xs:element name="date" type="xs:gYear"/> <xs:element name="price" type="moneyType"/> </xs:sequence> <xs:attribute name="isbn" type="ISBNType" use="required"/> <xs:assert test="if (publisher eq 'McGraw-Hill') then starts-with(@isbn, '007') else if (publisher eq 'Academic Press') then starts-with(@isbn, '012') else true()"/> </xs:complexType> </xs:element> <xs:complexType name="moneyType"> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="currency" type="currencyType"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:simpleType name="currencyType"> <xs:restriction base="xs:string"> <xs:enumeration value="USD"/> <xs:enumeration value="GBP"/> <xs:enumeration value="EUR"/> <xs:enumeration value="CAD"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="ISBNType"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{9}[0-9X]"/> </xs:restriction> </xs:simpleType> </xs:schema> A valid XML instance conforming to this schema might look like this: 133 The Validation Task <?xml version="1.0" encoding="UTF-8"?> <books> <book isbn="0070491712"> <title>Apple PASCAL: a hands-on approach</title> <author>Arthur Luehrmann</author> <author>Herbert Peckham</author> <publisher>McGraw-Hill</publisher> <date>1981</date> <price currency="USD">13.95</price> </book> <book isbn="0124119700"> <title>An Introduction to Direct Access Storage Devices</title> <author>Hugh Sierra</author> <publisher>Academic Press</publisher> <date>1990</date> <price currency="USD">72.95</price> </book> </books> The Saxon-EE schema compiler can be invoked to convert the source schema into an SCM le, for example with a command such as: java com.saxonica.Validate xsd:books.xsd -scmout:xsd Here is the resulting SCM le: <?xml version="1.0" encoding="UTF-8"?> <scm:schema
Recommended publications
  • Schematron Overview Excerpted from Leigh Dodds’ 2001 XSLT UK Paper, “Schematron: Validating XML Using XSLT”
    Schematron: validating XML using XSLT Schematron Overview excerpted from Leigh Dodds’ 2001 XSLT UK paper, “Schematron: validating XML using XSLT” Leigh Dodds, ingenta ltd, xmlhack.com April 2001 Abstract Schematron [Schematron] is a structural based validation language, defined by Rick Jelliffe, as an alternative to existing grammar based approaches. Tree patterns, defined as XPath expressions, are used to make assertions, and provide user-centred reports about XML documents. Expressing validation rules using patterns is often easier than defining the same rule using a content model. Tree patterns are collected together to form a Schematron schema. Schematron is a useful and accessible supplement to other schema languages. The open-source XSLT implementation is based around a core framework which is open for extension and customisation. Overview This paper provides an introduction to Schematron; an innovative XML validation language developed by Rick Jelliffe. This innovation stems from selecting an alternative approach to validation than existing schema languages: Schematron uses a tree pattern based paradigm, rather than the regular grammars used in DTDs and XML schemas. As an extensible, easy to use, open source tool Schematron is an extremely useful addition to the XML developers toolkit. The initial section of this paper conducts a brief overview of tree pattern validation, and some of the advantages it has in comparison to a regular grammar approach. This is followed by an outline of Schematron and the intended uses which have guided its design. The Schematron language is then discussed, covering all major elements in the language with examples of their 1 of 14 Schematron: validating XML using XSLT usage.
    [Show full text]
  • Schema Declaration in Xml Document
    Schema Declaration In Xml Document Is Darin varying or propellant when cluck some suffusion motive melodically? When Anton interdepend his titters reap not gyrally enough, is Parsifal malnourished? Styled Winnie scollop confoundedly, he reincreasing his stopple very refreshfully. When a uri that they come back into account only applies when sales orders that document in order to the design Must understand attribute Should I define a global attribute that will indicate to implementation the criticality of extension elements? Create a DOM parser to use for the validation of an instance document. As such, the XML Schema namespace, and provides a mapping between NIEM concepts and the RDF model. It is a convention to use XSD or XS as a prefix for the XML Schema namespace, et al. XML documents have sufficient structure to guarantee that they can be represented as a hierarchical tree. Are expanded names universally unique? DOC format for easy reading. This site uses cookies. This schema fragment shows the definition of an association type that defines a relationship between a person and a telephone number. Furthermore, such as Adobe Acrobat Reader. In some cases, if any. The idea behind using URIs for namespace names are that URIs are designed to be unique and persistent. Note: The material discussed in this section also applies to validating when using the SAX parser. Finally, Relax NG Schema, even when the elements and attributes defined by Microsoft are present. The XML representation for assertions. Developers of domain schemas and other schemas that build on and extend the NIEM release schemas need to be able to define additional characteristics of common types.
    [Show full text]
  • Determining the Output Schema of an XSLT Stylesheet
    Determining the Output Schema of an XSLT Stylesheet Sven Groppe and Jinghua Groppe University of Innsbruck, Technikerstrasse 21a, A-6020 Innsbruck, Austria {Sven.Groppe, Jinghua Groppe}@uibk.ac.at Abstract. The XSLT language is used to describe transformations of XML documents into other formats. The transformed XML documents conform to output schemas of the used XSLT stylesheet. Output schemas of XSLT stylesheets can be used for a static analysis of the used XSLT stylesheet, to automatically detect the XSLT stylesheet, which has been used for the trans- formation, of target XML documents or to reason on the output schema without access to the target XML documents. In this paper, we describe how to auto- matically determine such an output schema of a given XSLT stylesheet, where we only consider XML to XML transformations. The input of our proposed output schema generator is the XSLT stylesheet and the schema of the input XML documents. The experimental evaluation shows that our prototype can de- termine the output schemas of nearly all typical XSLT stylesheets. 1 Introduction Among other usages of XML, XML is the most widely used data model for exchang- ing data on the web and elsewhere. For the exchange of data, we have to transform the data from one format into another format whenever the two exchange partners use different formats. The exchange partners can use different formats, which might be a proprietary company standard, a proprietary application format or other standard for- mats, for historical, political or other reasons. We focus on XSLT [23] as transforma- tion language for the XML data.
    [Show full text]
  • Mulberry Classes Guide to Using the Oxygen XML Editor (V19.0)
    Mulberry Classes Guide to Using the Oxygen XML Editor (v19.0) Mulberry Technologies, Inc. 17 West Jefferson Street, Suite 207 Rockville, MD 20850 Phone: 301/315-9631 Fax: 301/315-8285 [email protected] http://www.mulberrytech.com Version 1.6 (April 21, 2017) ©Copyright 2015, 2017 Mulberry Technologies, Inc. Mulberry Classes Guide to Using the Oxygen XML Editor (v19.0) Exercise 1 Exercise 1. Guide to Using Oxygen XML Editor (v19.0) NOTE: This is a reference, not a list of instructions! Oxygen is both an XML editor and a development tool. We will be using it to run XML transforms using XSLT, to validate documents according to a DTD or schema, and to run Schematron, XQuery, XSLT-FO, and other pro- cesses. Key Oxygen Icons check well-formedness (blue checkmark) validate document (red checkmark) associate schema (red push pin) apply transformation scenario (triangle in circle) configure transformation scenario (wrench) XPath 2.0 search window Open Oxygen XML Editor • Double click the icon Naming Files When you create a file, it is considered best practice to name your files using the following file extensions: • XML filenames end in “.xml” • XSLT filenames end in “.xsl” Exercises page 1 Mulberry Classes Guide to Using the Oxygen XML Editor (v19.0) • XML Schema filenames end in “.xsd” • DTD filenames end in “.dtd” • DTD modules (DTD fragments) end in “.ent” or “.mod” • Schematron filenames end in “.sch” • PDF files end in “.pdf” • HTML an XHTML files end in “.html” or “.htm” • RELAXNG files end in “.rng” Create a New XML Document 1. First Time Opening Oxygen • If a “Welcome to Oxygen” screen appears, under Create New • Choose New Document • Choose XML Document • Then finish as explained below • If there is no “Welcome to Oxygen” screen, on the top bar choose File • Choose New • Under New Document, choose XML Document • Then finish as explained below 2.
    [Show full text]
  • The Docbook Schema Working Draft V5.0B9, 26 October 2006
    The DocBook Schema Working Draft V5.0b9, 26 October 2006 Document identifier: docbook-5.0b9-spec-wd-01 Location: http://www.oasis-open.org/docbook/specs Editor: Norman Walsh, Sun Microsystems, Inc. <[email protected]> Abstract: DocBook is a general purpose [XML] schema particularly well suited to books and papers about computer hardware and software (though it is by no means limited to these applications). The Version 5.0 release is a complete rewrite of DocBook in RELAX NG. The intent of this rewrite is to produce a schema that is true to the spirit of DocBook while simultaneously removing inconsistencies that have arisen as a natural consequence of DocBook's long, slow evolution.The Technical Committee has taken this opportunity to simplify a number of content models and tighten constraints where RELAX NG makes that possible. The Technical Committee provides the DocBook 5.0 schema in other schema languages, including W3C XML Schema and an XML DTD, but the RELAX NG Schema is now the normative schema. Status: This is a Working Draft. It does not necessarily represent the consensus of the committee. Please send comments on this specification to the <[email protected]> list. To subscribe, please use the OASIS Subscription Manager. The errata page for this specification is at http://www.oasis-open.org/docbook/specs/docbook5-er- rata.html. Copyright © 2001, 2002, 2003, 2004, 2005, 2006 The Organization for the Advancement of Structured In- formation Standards [OASIS]. All Rights Reserved. Table of Contents 1. Introduction .................................................................................................................................... 2 2. Terminology .................................................................................................................................... 2 3. The DocBook RELAX NG Schema V5.0 .............................................................................................
    [Show full text]
  • NEMSIS V3 Schematron Guide
    NEMSIS TAC Whitepaper NEMSIS V3 Schematron Guide Date November 23, 2011 (Final) January 17, 2014 (Rewritten – Candidate Release 1) March 3, 2014 (Updated) March 2, 2015 (Updated) September 7, 2017 (Updated references) Authors Joshua Legler – NEMSIS Consultant Shaoyu Su – NEMSIS Software Developer N. Clay Mann – NEMSIS P.I. Contributors Aaron Hart, Chris Morgan, Mike Darvill, Kashif Khan and Troy Whipple – ImageTrend and René Nelson – ZOLL Lindsey Narloch – State of North Dakota Adam Voss – TriTech Software Systems Mark Potter – Medusa David Saylor – Beyond Lucid Technologies Patrick Sennett – Good Samaritan Hospital Jeff Robertson – EMSPIC Paul Sharpe – Commonwealth of Virginia Jessica Lundberg – Cognitech Ryan Smith – Intermedix Juan Esparza – State of Florida Tom Walker – University of Alabama Overview Schematron is a rule-based language for XML document validation. Schematron is an international standard defined in ISO/IEC 19757-3(2006) (hereafter referred to as “normative standard”). Anyone who creates Schematron files or software that performs Schematron-based validation should obtain a copy of the normative standard at https://www.iso.org/standard/40833.html. (Note: The normative standard was updated in 2016. Software compliant with NEMSIS version 3.4 should implement the 2006 version of the normative standard, as contained in the NEMSIS version 3.4 Schematron Development Kit.) Much of the validation in NEMSIS is accomplished via the use of W3C XML Schemas (known as XSD). XML Schemas constrain the structure of NEMSIS XML documents and the contents of elements and attributes within those documents using grammar-based validation. However, XML Schemas are not capable of context-sensitive validation, such as constraining the contents of one element based on the contents of another element.
    [Show full text]
  • Introduction to Schematron
    Introduction to Schematron Wendell Piez and Debbie Lapeyre Mulberry Technologies, Inc. 17 West Jefferson St. Suite 207 Rockville MD 20850 Phone: 301/315-9631 Fax: 301/315-8285 [email protected] http://www.mulberrytech.com Version 90-1.0 (November 2008) © 2008 Mulberry Technologies, Inc. Introduction to Schematron Administrivia...................................................................................................................... 1 Schematron is a ................................................................................................................. 1 Reasons to use Schematron............................................................................................... 1 What Schematron is used for............................................................................................ 2 Schematron is an XML vocabulary................................................................................... 2 Schematron specifies, it does not perform........................................................................ 2 Simple Schematron processing architecture...................................................................... 3 Schematron validation in action........................................................................................ 4 Basic Schematron building blocks................................................................................. 4 How Schematron works.................................................................................................. 4 Outline of a simple Schematron
    [Show full text]
  • XML Schema Infoset Model, Part 1
    XML Schema Infoset Model, Part 1 Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Before you start......................................................... 2 2. XML Schema fundamentals .......................................... 3 3. Setting up the development environment .......................... 5 4. Using XML Schema Infoset Model classes ........................ 9 5. Working with XML Schema resources in Eclipse ................. 21 6. Working with namespaces............................................ 25 7. You try it!................................................................. 27 8. Summary and resources .............................................. 28 XML Schema Infoset Model, Part 1 Page 1 of 29 ibm.com/developerWorks Presented by developerWorks, your source for great tutorials Section 1. Before you start About this tutorial The first of a two-part series, this tutorial gives you the building blocks you need to set up and work with the XML Schema Infoset Model. In this tutorial, you will learn: • How to set up the development environment • How to use the XML Schema Infoset Model classes • How to load and create XML Schema models • How to link XML Schema models together This tutorial is for developers who are familiar with Java, XML, and XML Schema, and who are interested in combining these technologies using the XML Schema Infoset Model. You should therefore understand how to write Java code and understand how XML Schemas work. Some understanding of the Unified Modeling Language (UML) is helpful but not required. You can get an introduction to XML Schema fundamentals in the Resources on page 28 at the end of this tutorial, and an introduction to UML basics in How to read UML class diagrams on page 9 .
    [Show full text]
  • SOAP API Developer's Guide
    PureConnect® 2019 R4 Generated: 11-November-2019 SOAP API Content last updated: 06-November-2019 See Change Log for summary of Developer's Guide changes. Abstract This document contains Application Programming Interface (API) reference information for the Simple Object Access Protocol (SOAP) with PureConnect. For the latest version of this document, see the PureConnect Documentation Library at: http://help.genesys.com/cic. For copyright and trademark information, see https://help.genesys.com/cic/desktop/copyright_and_trademark_information.htm. 1 Table of Contents Table of Contents 2 CIC and SOAP API Developer's Guide overview 5 Audience 5 Organization of Material 5 Related Documentation 5 Recommended Web Links 5 Introduction to SOAP in the CIC Environment 7 What is SOAP? 7 Who uses CIC's SOAP functionality? 8 SOAP's Request/Response Model 9 Web Services 9 Requests and Responses are XML Documents 9 What is XML? 10 What is the relationship between XML and markup languages, such as HTML or SGML? 10 XML Parsers 11 Viewing XML in Internet Explorer or Edge 11 Comparing XML to HTML 12 Other features of XML 12 Structure of an XML file 12 Listing 1: Sample XML File 12 XML Declaration 12 Rules that govern tags 13 The Root Element 13 Child Elements 13 Structure of SOAP Messages 13 Envelope Section 15 Header Section 15 Body Section 16 Request Messages 16 Response Messages 16 Fault Messages 17 CIC's SOAP Components 17 SOAP Tools in Interaction Designer 17 The SOAP Tracer Utility 20 SOAP ISAPI Listener Task for IIS 25 SOAP Notifier COM Objects 25 Install
    [Show full text]
  • The Resource Description Framework and Its Schema Fabien Gandon, Reto Krummenacher, Sung-Kook Han, Ioan Toma
    The Resource Description Framework and its Schema Fabien Gandon, Reto Krummenacher, Sung-Kook Han, Ioan Toma To cite this version: Fabien Gandon, Reto Krummenacher, Sung-Kook Han, Ioan Toma. The Resource Description Frame- work and its Schema. Handbook of Semantic Web Technologies, 2011, 978-3-540-92912-3. hal- 01171045 HAL Id: hal-01171045 https://hal.inria.fr/hal-01171045 Submitted on 2 Jul 2015 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. The Resource Description Framework and its Schema Fabien L. Gandon, INRIA Sophia Antipolis Reto Krummenacher, STI Innsbruck Sung-Kook Han, STI Innsbruck Ioan Toma, STI Innsbruck 1. Abstract RDF is a framework to publish statements on the web about anything. It allows anyone to describe resources, in particular Web resources, such as the author, creation date, subject, and copyright of an image. Any information portal or data-based web site can be interested in using the graph model of RDF to open its silos of data about persons, documents, events, products, services, places etc. RDF reuses the web approach to identify resources (URI) and to allow one to explicitly represent any relationship between two resources.
    [Show full text]
  • Oxygen XML Editor 12.2
    Oxygen XML Editor 12.2 Oxygen XML Editor | TOC | 3 Contents Chapter 1: Introduction................................................................................17 Key Features and Benefits of Oxygen XML Editor ..............................................................................18 Chapter 2: Installation..................................................................................21 Installation Requirements.......................................................................................................................22 Platform Requirements...............................................................................................................22 Operating System.......................................................................................................................22 Environment Requirements........................................................................................................22 JWS-specific Requirements.......................................................................................................22 Installation Instructions..........................................................................................................................23 Windows Installation..................................................................................................................23 Mac OS X Installation................................................................................................................24 Linux Installation.......................................................................................................................24
    [Show full text]
  • Docbook Vs DITA
    DocBook vs DITA Radu Coravu [email protected] @radu_coravu DITA for Software Documentation About the Author I’m a Hub: Feedback (questions, Open Source Projects End users problems, improvement requests) Help, Blogs/Presentations workarounds Technical Support (Me) Improve Oxygen XML Editor Improve product documentation Copyright @ Syncro Soft, 2014. All rights reserved. DITA for Software Documentation DocBook vs DITA “Comparing DocBook and DITA is like comparing two different types of birds” Copyright @ Syncro Soft, 2014. All rights reserved. DITA for Software Documentation DocBook 5 vs DITA 1.3 ● Compare standards/vocabularies ● Compare publishing systems ● Compare documentation/communities Copyright @ Syncro Soft, 2014. All rights reserved. DITA for Software Documentation Short History DocBook DITA ● 1991 – First DTD ● 2001 – First DTD HAL Computer IBM Systems and O'Reilly ● 1998 – OASIS ● June 2005 - OASIS ● Current version: 5.1 ● Current version: 1.3 ● Extensive XML ● Extensive XML vocabulary (366) vocabulary (461) Copyright @ Syncro Soft, 2014. All rights reserved. DITA for Software Documentation Main Purpose DocBook DITA ● Books, articles in web or ● Topic-oriented PDF format information “DocBook is a general “The Darwin Information purpose [XML] schema Typing Architecture (DITA) specification defines a set of particularly well suited to document types for books and papers about authoring and organizing computer hardware and topic-oriented information, as well as a set of software (though it is by mechanisms for combining, no means limited to these extending, and constraining applications).” document types.” Copyright @ Syncro Soft, 2014. All rights reserved. DITA for Software Documentation Versioning DocBook DITA ● Three major versions ● 4 minor versions (1.0, (3, 4 and 5). 1.1, 1.2 and 1.3) ● Numerous minor ● Latest Version is DITA (maintenance) 1.3 releases.
    [Show full text]