About Users Other Info (External) |
Main /
IntroductionXML is becoming an increasingly popular language for documents and data. Schemas are an integral part of XML documents. A schema defines the building blocks of an XML document, such as the types of elements and attributes. An XML document can be validated against a schema to ensure that the document conforms to the formatting rules for an XML document (is well-formed) and to the types, elements, and attributes defined in the schema (is valid). A schema also serves as a valuable guide for querying and updating an XML document or database. For instance, to correctly construct a query, e.g., in XQuery, a user will (usually) consult the schema rather than the data. Finally, a schema can be helpful in query optimization, e.g., in constructing a path index. Time-varying data naturally arises in XML documents. A temporal document records the evolution of a document over time, i.e., all of the versions of the document. Capturing a documents evolution is vital to supporting time travel queries that delve into a past version, and incremental queries that involve the changes between two versions In this work we consider how to accommodate and validate time-varying data within XML Schema. We propose a system, called Temporal XML Schema ( τtXSchema ), for constructing and validating temporal documents. Temporal XML Schema extends XML Schema with the ability to define temporal element types. A temporal element type denotes that an element can vary over time, describes how to associate temporal elements across snapshots, and provides some temporal constraints that broadly characterize how a temporal element can change over time. In Temporal XML Schema, any element type can be turned into a temporal element type by including a simple temporal annotation in the type definition. So a Temporal XML Schema document is just a conventional XML Schema document with few temporal annotations. The second type of annotation is the physical annotations, which describe how to represent the time-varying aspects of the document. τXSchema is consistent and compatible with both XML Schema and the XML data model. In τXSchema, a temporal validator ( τXMLLint ) augments a conventional validator to more comprehensively check the validity constraints of a document, especially temporal constraints that cannot be checked by a conventional validator. We then extend τXSchema to support schema versioning. In doing so, we leverage both conventional XML Schema and related tools (principally, the conventional validator), as well as τXMLLint for data versioning. A challenge with schema versioning is that anything can change, and thus must be versioned: the snapshot documents, the base schema, the temporal annotations, the physical annotations, the schema documents included by these documents, even the schemas of these schema components. And, because the physical annotations can change, the concrete representation within a temporal XML document can vary. |