W3C

XML Information Set

W3C Working Draft 26 July 2000

This version:
http://www.w3.org/TR/2000/WD-xml-infoset-20000726
Latest version:
http://www.w3.org/TR/xml-infoset
Previous version:
http://www.w3.org/TR/1999/WD-xml-infoset-19991220
Editors:
John Cowan

Abstract

This specification describes an abstract data set which contains the useful information available from an XML document.

Status of this Document

Though this specification has already had a Last Call review on an earlier version , the XML Core Working Group has decided to publish this working draft of its latest version (member only) and invites public comment on this specification.

Comments on this document are invited and are to be sent to the public mailing list www-xml-infoset-comments@w3.org. An archive is available at http://lists.w3.org/Archives/Public/www-xml-infoset-comments/.

For background on this work, please see the XML Activity Statement. This specification is a product of the XML Core Working Group.

See XML Information Set Requirements for the specific requirements that informed development of this specification.

It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/ .

Contents

1. Introduction
2. Information Items
2.1 The Document Information Item
2.2 Element Information Items
2.3 Attribute Information Items
2.4 Processing instruction Information Items
2.5 Reference to Skipped Entity Information Items
2.6 Character Information Items
2.7 Comment Information Items
2.8 The Document Type Declaration Information Item
2.9 Entity Declaration Information Items
2.10 Notation Information Items
2.11 Entity Start Marker Information Items
2.12 Entity End Marker Information Items
2.13 CDATA Start Marker Information Items
2.14 CDATA End Marker Information Items
2.15 Namespace Declaration Information Items
3. Conformance
3.1 Core Conformance
4. References
4.1 Normative References
4.2 Informative References
Appendix A: XML 1.0 Reporting Requirements (informative)
Appendix B: What is not in the Information Set
Appendix D: RDF Schema (informative)


1. Introduction

This document specifies an abstract data set called the XML Information Set (Infoset ), a description of the information available in a well-formed XML document [XML].

XML 1.0 documents that do not conform to [Namespaces], though technically well-formed, are not considered to have meaningful information sets as defined by this specification. That is, this specification does not define an information set documents that have element or attribute names containing colons that are used in other ways than as prescribed by [Namespaces]. There is no requirement for a XML document to be valid in order to have an information set.

An XML document's information set consists of two or more information items (the information set for any well-formed XML document will contain at least the document information item and one element information item). An information item is an abstract representation of some part of an XML document: each information item has a set of associated properties

An information set describes its XML document with all entity references already expanded, that is, represented by the information items corresponding to their replacement text. Explicit provision is made in the information set for representing an entity reference that has not been or cannot be expanded, (i.e. because an XML processor has not read its declaration or its value).

The XML Information Set does not require or favor a specific interface or class of interfaces. This specification presents the information set as a modified tree for the sake of clarity and simplicity, but there is no requirement that the XML Information Set be made available through a tree structure; other types of interfaces, including (but not limited to) event-based and query-based interfaces are also capable of providing information conforming to the XML Information Set. As long as the information in the information set is made available to XML applications in one way or another, the requirements of this document are satisfied.

The terms "information set" and "information item" are similar in meaning to the generic terms "tree" and "node", as they are used in computing. However, these terms were avoided in this document to reduce possible confusion with other specific data models. Information items do not map one-to-one with the Nodes of the DOM or the "tree" and "nodes" of the XPath data model.

The Infoset provides a definition of one specific body of information, not an exhaustive or unified inventory of the various kinds of information which specialized XML processors (e.g. schema-aware processors) may provide to downstream applications.

Note: In this document, the words "must", "should", and "may" assume the meanings specified in RFC 2119 [RFC2119], except that the words do not appear in upper case.

Note: To the best of the editor's knowledge and belief, the information set scheme described in this document satisfies the requirements of the XPointer-Information Set Liaison Statement [XPointer-Liaison].

Note: To the best of the editor's knowledge and belief, the interface specified by the Document Object Model, Level 1 Core Recommendation [DOM] conforms to the XML Information Set as currently specified.

2. Information Items

An information set can contain up to fifteen different types of information items, as explained in the following sections. Every information item has properties. For ease of reference, each property is given a name, indicated [thus] .

2.1. The Document Information Item

XML Definition: document (Section 2, Documents)

XML Syntax: [1] Document (Section 2.1, Well-Formed XML Documents)

There is exactly one document information item in the information set, and all other information items are accessible from the properties of the document information item, either directly or indirectly through the properties of other information items.

The document information item has the following properties:

  1. [children] An ordered list of child information items, in document order. The list contains exactly one element information item. The list also contains one processing instruction information item for each processing instruction preceding the document element or following the document element, and one comment information item each comment outside the document element. Processing instructions and comments within the DTD are excluded. If there is a document type declaration, the list will also contain a document type declaration information item.
  2. [notations] An unordered set of notation information items, one for each notation declaration in the DTD.
  3. [entities] An unordered set of entity declaration information items, one for each general entity declaration appearing in the DTD. There is also an entity declaration information item for the document entity and one for the external DTD subset, if any.
  4. [base URI] The absolute URI of the document entity, if that is known. If it is not known (because the document was parsed from a socket connection or from standard input, e.g.), this property is null.
  5. [standalone] An indication of the standalone status of the document, either "yes", "no", or "not present". This property is derived from the XML declaration optionally present at the beginning of the document entity.
  6. [version] An string representing the XML version of the document. This property is derived from the XML declaration optionally present at the beginning of the document entity.

2.2. Element Information Items

XML Definition: element (Section 3, Logical Structures)

XML Syntax: [39] Element (Section 3, Logical Structures)

There is a element information item for each element appearing in the XML document. One of the element information items corresponds to the document element (the root of the element tree), and all other element information items are children of the document element, either directly or indirectly.

An element information item has the following properties:

  1. [namespace name] The namespace name, if any, of the element type. If the element does not belong to a namespace, this property is null.
  2. [local name] The local part of the element-type name. This does not include any namespace prefix or following colon.
  3. [children] An ordered list of child information items, in document order. This list contains element , processing instruction, reference to skipped entity, character, and comment information items, one for each element, processing instruction, reference to an unprocessed external entity, data character. and comment appearing immediately within the current element, If the element content includes any entity references, the list will also include pairs of entity start marker information items and their corresponding entity end marker information items, one pair for each entity reference. If the element content includes any CDATA sections, the list will also include pairs of CDATA start marker information items and their corresponding CDATA end marker information items, one pair for each CDATA section. If the element is empty, this list has no members.
  4. [attributes] An unordered set of attribute information items, one for each of the attributes (specified or defaulted from the DTD) for this element. Namespace declarations are not represented as attribute information items. If there are no attributes, this set has no members.
  5. [declared namespaces] An unordered set of namespace declaration information items, one for each of the namespaces declared either in the start-tag of this element or provided in the DTD for this element type. If there are no such namespace declarations, this list has no members.
  6. [in-scope namespaces] An unordered set, distinct from the [declared namespaces] property, of namespace declaration information items, one for each of the namespaces in effect for this element. If there are no namespaces in effect for the element, this set will have no members. This set will include all of the members of [declared namespaces], except for any information item representing a declaration in the form xmlns="", which does not declare a namespace but rather undeclares the default namespace.
  7. [base URI] The absolute URI of the external entity in which this element appears, as computed by the method of XML Base [XBase]. If the element appears directly in the document entity, the URI is the absolute URI of the document entity, if that is known. If it is not known, this property is null.
  8. [parent] The document or element information item which contains this information item in its [children] property.

2.3. Attribute Information Items

XML Definition: attribute (Section 3.1, Start-Tags, End-Tags, and Empty-Element Tags)

XML Syntax: [41] Attribute (Section 3.1, Start-Tags, End-Tags, and Empty-Element Tags)

There is a attribute information item for each attribute (specified or defaulted) for each element in the document, except that attributes which are namespace declarations are represented using namespace declaration information items, not attribute information items.

Attributes declared in the DTD with a default value of #IMPLIED and not specified in the element's start tag are not represented by attribute information items.

An attribute information item has the following properties:

  1. [namespace name] The namespace name, if any, of the attribute. Otherwise, this property is null.
  2. [local name] The local part of the attribute's name. This does not include any namespace prefix or following colon.
  3. [normalized value] The normalized attribute value (see 3.3.3 Attribute-Value Normalization [XML]).
  4. [children] An ordered list of character information items, one for each character appearing in the normalized attribute value. If the element content includes any entity references, the list will also include pairs of entity start marker information items and their corresponding entity end marker information items, one pair for each entity reference. If a run of whitespace characters is collapsed to a single space character as a result of attribute normalization, the resulting character information item is placed before any entity start in the run and after any entity end in the run.
  5. [specified] A flag indicating whether this attribute was actually specified in the start-tag of its element, or was defaulted from the DTD.
  6. [default] An ordered list of character information items, one for each character appearing in the default value specified for this attribute in the DTD, if any. A #FIXED value is considered a default value.
  7. [attribute type] An indication of the type declared for this attribute in the DTD. Legitimate values are ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS, NOTATION, CDATA, and ENUMERATED.
  8. [owner element] The element information item which contains this information item in its [attributes] property.

2.4. Processing Instruction Information Items

XML Definition: processing instruction (Section 2.6, Processing Instructions)

XML Syntax: [16] PI (Section 2.6, Processing Instructions)

There is one processing instruction information item for every processing instruction in the document. The XML declaration and text declarations for external parsed entities are not considered processing instructions.

A processing instruction information item has the following properties:

  1. [target] A string representing the target part of the processing instruction (an XML name).
  2. [content] A string representing the content of the processing instruction, excluding the target and any whitespace immediately following it. If there is no such content, the value of this property will be the empty string.
  3. [base URI] The absolute URI of the external entity in which this PI appears, as computed by the method of XML Base [XBase]. If the PI appears directly in the document entity, the URI is the absolute URI of the document entity, if that is known. Otherwise, this property is null.
  4. [parent] The document, element, or document type definition information item which contains this information item in its [children] property.

2.5. Reference to Skipped Entity Information Items

XML Definition: Section 4.4.3, Included If Validating

A reference to skipped entity information item serves as a place-holder in the information set provided by a non-validating XML processor that does not read external parsed entities. There is one such information item for each reference to such an external general entity within the content of an element. A validating XML processor, or a non-validating processor that reads all external general entities, will never generate reference to skipped entity information items for a valid document.

A reference to skipped entity information item has the following properties:

  1. [name] The name of the entity referenced.
  2. [entity] The entity declaration information item for the skipped entity, if the XML processor has read the declaration. Otherwise, this property is null.
  3. [parent] The element information item which contains this information item in its [children] property.

2.6. Character Information Items

XML Syntax: [2] Char (Section 2.2, Characters)

There is one character information item for each character that appears within the document element, either literally, as a character reference, or within a CDATA section. There is also one character information item for each character that appears in a normalized attribute value.

Note, however, that a CR (#xD) character that is followed by an LF (#xA) character is not represented by any information item. Furthermore, a CR character that is not followed by an LF character is represented by an LF character information item. These rules do not apply to CR characters created by character references such as 
 or 
.

Each character is a logically separate information item, but XML applications are free to chunk characters into larger groups as necessary or desirable.

A character information item has the following properties:

  1. [character code] The ISO 10646 character code (in the range 0 to #x10FFFF, though not every value in this range is a legal XML character code) of the character.
  2. [element content whitespace] A flag indicating whether the character is whitespace appearing within element content (see [XML], 2.10 "White Space Handling"). Note that validating XML processors are required by XML 1.0 to provide this information.
  3. [parent] The element, attribute, or namespace information item which contains this information item in its [children] property.

2.7. Comment Information Items

XML Definition: comment (Section 2.5, Comments)

XML Syntax: [15] Comment (Section 2.5, Comments)

A comment information item corresponds to each XML comment in the original document.

A comment information item has the following properties:

  1. [content] A string representing the content of the comment.
  2. [parent] The document, element, or document type declaration information item which contains this information item in its [children] property.

2.8. The Document Type Declaration Information Item

XML Definition: document type declaration (section 2.8, Prolog and Document Type Declaration)

XML Syntax: [28] doctypedecl (section 2.8, Prolog and Document Type Declaration)

If the XML document has a document type declaration, then the information set contains a single document type declaration information item. Note that although entities and notations are logically part of the document type declaration, they are provided as properties of the document information item, not the document type declaration information item.

A document type declaration information item has the following properties:

  1. [external DTD] The entity information item for the external DTD subset, if such an information item exists. Otherwise, this property is null. The public and system identifiers for the external DTD subset are available through this information item.
  2. [children] An ordered list of comment information items and processing instruction information items representing comments and processing instructions appearing in the DTD, in the original document order. Items from the internal DTD subset appear before those in the external subset.
  3. [parent] The document information item.

2.9. Entity Declaration Information Items

XML Definition: entity (section 4, Physical Structures)

XML Syntax: [70] EntityDecl (section 4.2, Entity Declarations)

There is an entity declaration information item for each general entity, internal or external, declared in the DTD. When the same entity is declared more than once, only the first declaration is represented in the information set. (Declarations in the internal subset are understood to precede those in the external subset.) Parameter entities are not represented by entity declaration information items. There is also an entity declaration information item for the document entity, and one for the DTD external subset, if it exists, even though these entities are not actually declared anywhere.

An entity declaration information item has the following properties:

  1. [entity type] An indication of the type of the entity (internal general entity, external general entity, unparsed entity, document entity, or external DTD subset).
  2. [name] The name of the entity. If the information item represents the document entity or the external DTD subset, this property is null.
  3. [system identifier] The system identifier of the entity. If the information item represents an internal entity, this property is always null, and if it represents the document entity, the property may be null. In all other cases, the property must not be null.
  4. [public identifier] The public identifier of the entity, if one is available. If no public identifier is available, in particular for internal entities, this property is null.
  5. [base URI] The absolute URI corresponding to the entity. If the information item represents an internal entity, this property is always null, and if it represents the document entity, the property may be null. In all other cases, the property must not be null.
  6. [notation] The notation information item associated with the entity, if the entity is an unparsed entity. For entities other than unparsed entities, the property must be null.
  7. [content] The replacement text of the entity, if it is an internal entity. In all other cases, the property must be null.
  8. [charset] The name of the character encoding in which the entity (which must be an external entity or the document entity) is expressed. This property is derived either from the encoding declaration optionally present at the beginning of the document entity or an external entity respectively, or from a MIME header. This property is null in the case of an external entity that is not read.

2.10. Notation Information Items

XML Definition: notation (section 4.7, Notation Declarations)

XML Syntax: [82] NotationDecl (section 4.7, Notation Declarations)

There is one notation information item for each notation declared in the DTD.

A notation information item has the following properties:

  1. [name] The name of the notation.
  2. [system identifier] The system identifier of the notation, if one was specified. If not, the property is null.
  3. [public identifier] The public identifier of the notation, if one was specified. If not, the property is null.
  4. [base URI] The absolute URI corresponding to the notation, if any. If not, the property is null.

2.11. Entity Start Marker Information Items

XML Definition: entity reference (section 4.1, Character and Entity References)

XML Syntax: [68] EntityRef (section 4.1, Character and Entity References)

Entity start marker information items are inserted just before the point where information items resulting from the inclusion of a general entity as a consequence of an entity reference begins.

Entity start marker information items are not used in connection with parameter entity references in the DTD.

An entity start marker information item has the following properties:

  1. [entity] The entity information item referred to by the entity reference which triggered the insertion of this information item.
  2. [parent] The element, attribute, or namespace information item which contains this information item in its [children] property.

2.12. Entity End Marker Information Items

XML Definition: entity reference (section 4.1, Character and Entity References)

XML Syntax: [68] EntityRef (section 4.1, Character and Entity References)

Entity end marker information items are inserted just after the point where information items resulting from the inclusion of a general entity as a consequence of an entity reference concludes.

Entity end marker information items are not used in connection with parameter entity references in the DTD.

An entity end marker information item has the following properties:

  1. [entity] The entity information item referred to by the entity reference which triggered the insertion of this information item.
  2. [parent] The element, attribute, or namespace information item which contains this information item in its [children] property.

2.13. CDATA Start Marker Information Items

XML Definition: CDATA sections (section 2.7, CDATA sections)

XML Syntax: [18] CDSect (section 2.7, CDATA Sections)

CDATA start marker information items are inserted just before the place where text embedded in a CDATA section begins.

A CDATA start marker information item has the following properties:

  1. [parent] The element information item which contains this information item in its [children] property.

2.14. CDATA End Marker Information Items

XML Definition: CDATA sections (section 2.7, CDATA sections)

XML Syntax: [18] CDSect (section 2.7, CDATA Sections)

CDATA end marker information items are inserted just after the place where text embedded in a CDATA section concludes.

A CDATA end marker information item has the following properties:

  1. [parent] The element information item which contains this information item in its [children] property.

2.15. Namespace Declaration Information Items

XML Definition: attribute (Section 3.1, Start-Tags, End-Tags, and Empty-Element Tags)

XML Syntax: [41] Attribute (Section 3.1, Start-Tags, End-Tags, and Empty-Element Tags)

There is one namespace declaration information item for each namespace declaration (specified or defaulted) for each element in the document. Namespace declarations are syntactically like attribute declarations of attributes that have names beginning with the string xmlns.

Namespace declarations declared in the DTD with a default value of #IMPLIED and not specified in the element's start tag are not represented by information items.

A namespace declaration information item has the following properties:

  1. [prefix] The prefix being declared. Syntactically, this is the part of the attribute name following the xmlns: prefix. If the attribute name is simply xmlns, this property is an empty string.
  2. [children] An ordered list of character information items, one for each character appearing in the normalized attribute value. If the element content includes any entity references, the list will also include pairs of entity start marker information items and their corresponding entity end marker information items, one pair for each entity reference. If a run of whitespace characters is collapsed to a single space character as a result of attribute normalization, the resulting character information item is placed before any entity start in the run and after any entity end in the run.
  3. [owner element] The element information item which contains this information item in its [declared namespaces] property.

3. Conformance

An XML processor conforms to the XML Information Set if it documents the information items and properties that it provides. Processors may provide only certain information items, and of the information items provided, only certain properties. In addition, properties that are lists or sets may be provided only in part.

XML processors may additionally provide additional information not found in the XML Information Set; for instance, the XML Information Set excludes whitespace that occurs between attributes from the information set, but an XML processor that provides this information can still conform to the XML Information Set as long as it provides information from the document's information set.

4.1. Core Conformance

An XML processor conforms to the XML Information Set core if it provides at least the following information items and properties:

  1. The document information item, including the following properties:

    • [children]
    • [notations]
    • [entities]
    • [base URI]

  2. All element information items, including the following properties:

    • [namespace name]
    • [local name]
    • [children]
    • [attributes]
    • [declared namespaces]
    • [base URI]
    • [parent]

  3. All processing instruction information items, including all their properties.

  4. All reference to skipped entity information items, including all their properties.

  5. All character information items, including the following properties:

    • [character code]
    • [parent]

  6. All attribute information items, including the following properties:

    • [namespace URI]
    • [local name]
    • [children]
    • [owner element]

  7. All entity information items corresponding to unparsed entities, including the following properties:

    • [name]
    • [system identifier]
    • [public identifier]
    • [base URI]
    • [notation]

  8. All notation information items, including all their properties.

  9. All namespace declaration items, including the following properties:

    • [prefix]
    • [parent]
    • [children]

Conformance to the core is not a requirement for conformance to the Infoset. The notion of core conformance is introduced solely for the convenience of other specifications and recommendations, so that they do not have to detail every information item and property which they support.

4. References

4.1 Normative References

ISO/IEC 10646
ISO (International Organization for Standardization). ISO/IEC 10646-1993 (E). Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane. [Geneva]: International Organization for Standardization, 1993 (plus amendments AM 1 through AM 7).
Namespaces
Namespaces in XML, eds. Tim Bray, Dave Hollander, and Andrew Layman. 14 January 1999. Available at http://www.w3.org/TR/REC-xml-names/.
RFC2119
Key words for use in RFCs to Indicate Requirement Levels, ed. S. Bradner. March 1997. Available at http://www.isi.edu/in-notes/rfc2119.txt.
XML
Extensible Markup Language (XML) 1.0, eds. Tim Bray, Jean Paoli, and C.M. Sperberg-McQueen. 10 February 1998. Available at http://www.w3.org/TR/REC-xml.
XBase
XML Base ed. Jonathan Marsh. February 2000. Available at http://www.w3.org/TR/xmlbase.

4.2 Informative References

DOM
Document Object Model (DOM) Level 1 Specification, eds. Vidur Apparao, Steve Byrne, Mike Champion, et alii. 1 October 1998. Available at http://www.w3.org/TR/REC-DOM-Level-1/ .
XPointer-Liaison
XPointer-Information Set Liaison Statement, ed. Steven J. DeRose. 24 February 1999. Available at http://www.w3.org/TR/NOTE-xptr-infoset-liaison.

Appendix A: XML 1.0 Reporting Requirements (informative)

Although the XML 1.0 Recommendation [XML] is primarily concerned with XML syntax, it also includes some specific reporting requirements for XML processors.

The reporting requirements include errors, which are outside the scope of this specification, and document information. All of the XML 1.0 requirements for document information reporting have been integrated into the XML Information Set (numbers in parentheses refer to sections of the XML Recommendation):

  1. An XML processor must always provide all characters in a document that are not part of markup to the application (2.10). We have interpreted this requirement to refer only to characters within the document element.
  2. A validating XML processor must inform the application which of the character data in a document is whitespace appearing within element content (2.10).
  3. An XML processor must pass a single LF character in place of CR or CR-LF characters appearing in its input (2.5).
  4. An XML processor must normalize the value of attributes according to the rules in clause 3.3 before passing them to the application. This implies that the value of attributes after normalization are passed to the application (3.3).
  5. An XML processor must pass the names and external identifiers (system identifiers, public identifiers or both) of declared notations to the application (4.7).
  6. When the name of an unparsed entity appears as the explicit or default value of an ENTITY or ENTITIES attribute, an XML processor must provide the names, system identifiers, and (if present) public identifiers of both the entity and its notation to the application (4.6, 4.7).
  7. An XML processor must pass processing instructions to the application. (2.6)
  8. An XML processor (necessarily a non-validating one) that does not include the replacement text of an external parsed entity in place of an entity reference must notify the application that it recognized but did not read the entity (4.4.3).
  9. A validating XML processor must include the replacement text of an entity in place of an entity reference. (5.2)
  10. A validating XML processor must supply the default value of attributes declared in the DTD for a given element type but not appearing in the element's start tag (5.2).

Appendix B: Example (informative)

Consider the following example XML document:

<?xml version="1.0"?>

<msg:message doc:date="19990421"
             	xmlns:doc="http://www.doc.example/namespaces/doc"
             	xmlns:msg="http://www.message.example/"
>Phone home!</msg:message>

The information set for this XML document contains the following information items:

Appendix C: What is not in the Information Set

The following information is not represented in the current version of the XML Information Set:

  1. The content models of elements, from ELEMENT declarations in the DTD.
  2. The grouping and ordering of attribute declarations in ATTLIST declarations.
  3. Whitespace outside the document element.
  4. The difference between the two forms of an empty element: <foo/> and <foo></foo>.
  5. Whitespace within start-tags (other than significant whitespace in attribute values) and end-tags.
  6. The difference between CR, CR-LF, and LF line termination.
  7. The order of attributes within a start-tag.
  8. The order of declarations within the DTD.
  9. The boundaries of conditional sections in the DTD.
  10. Any ignored declarations, including those within an IGNORE conditional section, as well as entity and attribute declarations ignored because previous declarations override them.

Appendix D: RDF Schema (informative)

The following RDF Schema provides a formal characterization of the Infoset. In case of disagreement between this schema and the prose in this document, the prose is normative.


<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<!-- this can be decoded as US-ASCII or iso-8859-1 as well,
     since it contains no characters outside the US-ASCII repertoire -->
<!-- $Id: infoset.rdf,v 1.1 2000/07/26 19:17:39 connolly Exp $ -->
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
 xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
 xmlns='http://www.w3.org/2000/07/infoset#'>

<!--Enumeration classes and their members-->

<rdfs:Class ID='AttributeType'/>
<AttributeType ID='AttributeType.ID'/>
<AttributeType ID='AttributeType.IDREF'/>
<AttributeType ID='AttributeType.IDREFS'/>
<AttributeType ID='AttributeType.ENTITY'/>
<AttributeType ID='AttributeType.ENTITIES'/>
<AttributeType ID='AttributeType.NMTOKEN'/>
<AttributeType ID='AttributeType.NMTOKENS'/>
<AttributeType ID='AttributeType.NOTATION'/>
<AttributeType ID='AttributeType.CDATA'/>
<AttributeType ID='AttributeType.ENUMERATED'/>

<rdfs:Class ID='Boolean'/>
<Boolean ID='Boolean.true'/>
<Boolean ID='Boolean.false'/>

<rdfs:Class ID='EntityType'/>
<EntityType ID='EntityType.InternalGeneral'/>
<EntityType ID='EntityType.ExternalGeneral'/>
<EntityType ID='EntityType.Unparsed'/>
<EntityType ID='EntityType.DocumentEntity'/>
<EntityType ID='EntityType.ExternalDTDSubset'/>

<rdfs:Class ID='Integer'
 rdfs:subClassOf='http://www.w3.org/2000/01/rdf-schema#Literal'/>

<rdfs:Class ID='StandaloneType'/>
<StandaloneType ID='StandaloneType.yes'/>
<StandaloneType ID='StandaloneType.no'/>
<StandaloneType ID='StandaloneType.notSpecified'/>


<!--Info item classes in document order-->

<rdfs:Class ID='InfoItem'/>

<rdfs:Class ID='Document' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='Element' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='Attribute' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='ProcessingInstruction' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='Character' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='ReferenceToSkippedEntity' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='Comment' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='DocumentTypeDeclaration' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='EntityDeclaration' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='Notation' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='EntityStartMarker' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='EntityEndMarker' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='CDATAStartMarker' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='CDATAEndMarker' rdfs:subClassOf='#InfoItem'/>

<rdfs:Class ID='Namespace' rdfs:subClassOf='#InfoItem'/>\


<!--Set containers-->

<rdfs:Class ID='InfoItemSet'
  rdfs:subClassOf='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>

<rdfs:Class ID='AttributeSet' rdfs:subClassOf='#InfoItemSet'/>

<rdfs:Class ID='EntitySet' rdfs:subClassOf='#InfoItemSet'/>

<rdfs:Class ID='NamespaceSet' rdfs:subClassOf='#InfoItemSet'/>

<rdfs:Class ID='NotationSet' rdfs:subClassOf='#InfoItemSet'/>


<!--Sequence container-->

<rdfs:Class ID='InfoItemSeq'
 rdfs:subClassOf='http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq'/>


<!--Info item properties-->

<rdfs:Property ID='attributes'>
  <rdfs:domain resource='#Element'/>
  <rdfs:range resource='#AttributeSet'/>
</rdfs:Property>

<rdfs:Property ID='attributeType'>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:range resource='#AttributeType'/>
</rdfs:Property>

<rdfs:Property ID='baseURI'>
  <rdfs:domain resource='#Document'/>
  <rdfs:domain resource='#Element'/>
  <rdfs:domain resource='#ProcessingInstruction'/>
  <rdfs:domain resource='#EntityDeclaration'/>
  <rdfs:domain resource='#Notation'/>
  <rdfs:range resource='http://www.w3.org/TR/1999/PR-rdf-schema-19990303#Literal'/>
</rdfs:Property>

<rdfs:Property ID='characterCode'>
  <rdfs:domain resource='#Character'/>
  <rdfs:range resource='#Integer'/>
</rdfs:Property>

<rdfs:Property ID='charset'>
  <rdfs:domain resource='#EntityDeclaration'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='children'>
  <rdfs:domain resource='#Document'/>
  <rdfs:domain resource='#Element'/>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:domain resource='#DocumentTypeDeclaration'/>
  <rdfs:domain resource='#Namespace'/>
  <rdfs:range resource='#InfoItemSeq'/>
</rdfs:Property>

<rdfs:Property ID='content'>
  <rdfs:domain resource='#ProcessingInstruction'/>
  <rdfs:domain resource='#Comment'/>
  <rdfs:domain resource='#EntityDeclaration'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='declaredNamespaces'>
  <rdfs:domain resource='#Element'/>
  <rdfs:range resource='#NamespaceSet'/>
</rdfs:Property>

<rdfs:Property ID='default'>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:range resource='#Boolean'/>
</rdfs:Property>

<rdfs:Property ID='elementContentWhitespace'>
  <rdfs:domain resource='#Character'/>
  <rdfs:range resource='#Boolean'/>
</rdfs:Property>

<rdfs:Property ID='entity'>
  <rdfs:domain resource='#ReferenceToSkippedEntity'/>
  <rdfs:domain resource='#EntityStartMarker'/>
  <rdfs:domain resource='#EntityEndMarker'/>
  <rdfs:range resource='#EntityDeclaration'/>
</rdfs:Property>

<rdfs:Property ID='entities'>
  <rdfs:domain resource='#Document'/>
  <rdfs:range resource='#EntitySet'/>
</rdfs:Property>

<rdfs:Property ID='entityType'>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:range resource='#EntityType'/>
</rdfs:Property>

<rdfs:Property ID='externalDTD'>
  <rdfs:domain resource='#DocumentTypeDeclaration'/>
  <rdfs:range resource='#EntityDeclaration'/>
</rdfs:Property>

<rdfs:Property ID='inScopeNamespaces'>
  <rdfs:domain resource='#Element'/>
  <rdfs:range resource='#NamespaceSet'/>
</rdfs:Property>

<rdfs:Property ID='localName'>
  <rdfs:domain resource='#Element'/>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='name'>
  <rdfs:domain resource='#ReferenceToSkippedEntity'/>
  <rdfs:domain resource='#EntityDeclaration'/>
  <rdfs:domain resource='#Notation'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='namespaceName'>
  <rdfs:domain resource='#Element'/>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:domain resource='#Namespace'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='normalizedValue'>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='notation'>
  <rdfs:domain resource='#EntityDeclaration'/>
  <rdfs:range resource='#Notation'/>
</rdfs:Property>

<rdfs:Property ID='notations'>
  <rdfs:domain resource='#Document'/>
  <rdfs:range resource='#NotationSet'/>
</rdfs:Property>

<rdfs:Property ID='ownerElement'>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:domain resource='#Namespace'/>
  <rdfs:range resource='#Element'/>
</rdfs:Property>

<rdfs:Property ID='parent'>
  <rdfs:domain resource='#Element'/>
  <rdfs:domain resource='#ProcessingInstruction'/>
  <rdfs:domain resource='#Character'/>
  <rdfs:domain resource='#ReferenceToSkippedElement'/>
  <rdfs:domain resource='#Comment'/>
  <rdfs:domain resource='#DocumentTypeDeclaration'/>
  <rdfs:domain resource='#EntityStartMarker'/>
  <rdfs:domain resource='#EntityEndMarker'/>
  <rdfs:domain resource='#CDATAStartMarker'/>
  <rdfs:domain resource='#CDATAEndMarker'/>
  <rdfs:range resource='#InfoItem'/>
</rdfs:Property>

<rdfs:Property ID='prefix'>
  <rdfs:domain resource='#Namespace'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='publicIdentifier'>
  <rdfs:domain resource='#EntityDeclaration'/>
  <rdfs:domain resource='#Notation'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='specified'>
  <rdfs:domain resource='#Attribute'/>
  <rdfs:range resource='#Boolean'/>
</rdfs:Property>

<rdfs:Property ID='standalone'>
  <rdfs:domain resource='#Document'/>
  <rdfs:range resource='#StandaloneType'/>
</rdfs:Property>

<rdfs:Property ID='systemIdentifier'>
  <rdfs:domain resource='#EntityDeclaration'/>
  <rdfs:domain resource='#Notation'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='target'>
  <rdfs:domain resource='#ProcessingInstruction'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

<rdfs:Property ID='version'>
  <rdfs:domain resource='#Document'/>
  <rdfs:range resource='http://www.w3.org/2000/01/rdf-schema#Literal'/>
</rdfs:Property>

</rdf:RDF>