XSchema Spec - Element Declarations (Section 2.2), Draft 8

Simon St.Laurent SimonStL at classic.msn.com
Tue Aug 18 13:40:54 BST 1998


I'm finally free of the proxy server nightmare, so XSchema will be coming out 
shortly.  I hope to close down the process by Friday for sections 1, 2, and 3, 
putting them out for two weeks of review.  Yes, a complete copy of both the 
spec and the DTD will be available by that point.

I won't be in Montreal, but I hope a few of you bring copies of the spec with 
you to talk about.

The only changes here are the addition of AttGroup to the XSchema element 
(note that AttDef elements are still possible there) and the correction of a 
date - 8/2/98 is now 2 August 1998, so no one should think the namespace 
section is from February.

As always, a prettier HTML version of this will be posted shortly at 
http://purl.oclc.org/NET/xschema.   The site is moving this week as well; AOL 
finally tried my patience too far and I'm setting up simonstl.com anyway.  The 
PURL will bring you to a current location; it will change as the location 
changes.

Simon St.Laurent
Dynamic HTML: A Primer / XML: A Primer / Cookies


2.0 XSchema Syntax

This section describes the XSchema document syntax. The XSchema document is an 
XML document containing a single XSchema element in which information 
describing the schema is nested. The XSchema element must be preceded by an 
XML declaration and may be preceded by other declarations, comments, and 
processing instructions.
2.1 The XSchema Element

The XSchema element is the root element for all XSchema documents. The 
declaration for the XSchema element is:

<!ELEMENT XSchema (Doc?, More?, (ElementDecl | AttDef | Model | AttGroup | 
Choice | Sequence | Mixed | Ref | Notation | XSchema)*)>
<!ATTLIST XSchema
    xmlns CDATA #FIXED "http://www.purl.org/NET/XSchema/v1"
    xmlns:XSC CDATA #FIXED "http://www.purl.org/NET/XSchema/v1"
    prefix NMTOKEN #IMPLIED
    ns CDATA #IMPLIED
    Version CDATA #FIXED "1.0"
    MimeType CDATA "application/xml"
    FileExtension CDATA "xml"
    id ID #IMPLIED>

The XSchema element contains other elements describing the XSchema and 
building a schema. These elements are described in later sections of this 
specification. The XSchema element may also contain other XSchema elements 
nested inside of it. This nesting of XSchema elements improves reusability of 
XSchemas by allowing the combination of multiple XSchemas inside of a single 
XSchema framework. It also allows finer-grained control over documentation for 
subsections of an XSchema.
The XSchema element's attributes include information about the namespace used 
by XSchema, the version of the XSchema specification used, and information 
about the type of documents described by the XSchema. 

The XSchema namespace is fixed with the xmlns attribute to correspond to the 2 
August 1998 working draft of Namespaces in XML. The xmlns:XSC attribute, also 
fixed, allows XSchema declarations to be prefixed with XSC for situations 
where they need to redefine the default namespace (as is the case with 
XSC:Doc, and may be the case with XSC:More - see Section 2.6 for more 
details.) The prefix attribute identifies the prefix that will be applied to 
all elements and attributes defined within this XSchema element during 
conversion to DTDs, unless overridden in the element or attribute declaration 
itself. The ns attribute identifies the URI which functions as the namespace 
name for subelements. Namespace processing is covered further in Section 3.0, 
"XSchema and Namespaces".
Information about the XSchema specification version used to create this 
XSchema, contained in the Version attribute, is critical to proper handling of 
documents should the specification be updated in the future. This 
specification is identified as version 1.0. Future major and minor versions of 
the XSchema specification should identify themselves differently. No provision 
is made at this time for nesting XSchemas using different versions of the 
specification under a parent XSchema element.

The MimeType and FileExtension attributes are used to provide a suggested MIME 
(Multipurpose Internet Mail Extensions) Content-type and file extension for 
documents created using a particular XSchema. Applications may use this 
information to identify XML document types. A document library that generates 
XML documents dynamically could assign file extensions and MIME types based on 
the XSchema used. 

Applications using this information should use the values stored in the first 
XSchema encountered during processing. For instance, if an XSchema includes 
another nested XSchema, the values for the MimeType and FileExtension 
attributes of the root XSchema should be used.

By default, most XML documents are assumed to have a MIME type of 
application/xml, as described in RFC 2376, "XML Media Types," by E.J. 
Whitehead and Murata Makoto. Developers who need different MIME types for 
documents created using particular XSchemas may register other MIME types with 
the IETF, as described in RFC 1590, or use the 'x-' prefix syntax for 
subtypes, as described in RFC 1521.


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list