XSchema Spec - Element Declarations (Section 2.2), Draft 7
Simon St.Laurent
SimonStL at classic.msn.com
Mon Aug 10 19:07:13 BST 1998
The latest draft of the XSchema Element Declaration syntax follows. After
receiving a few suggestions regarding moving attributes into a container
element and considering the implications for reusability and processing, I've
changed AttDef* to AttGroup?. AttDefs may still appear in the XSchema
element; now I need to add AttGroup there.
Eventually, a prettier HTML version of this will be posted shortly at
http://purl.oclc.org/NET/xschema. I'm having odd problems with the AOL
account and FTP right now; the entire site may move to a new URL shortly.
Simon St.Laurent
Dynamic HTML: A Primer / XML: A Primer / Cookies
2.2 Element Declarations
Element declarations in XSchemas are made using the ElementDecl element and
its contents:
<!ELEMENT ElementDecl (Doc?, More?, Model, AttGroup?)>
<!-- Name is the element name -->
<!ATTLIST ElementDecl
Name NMTOKEN #REQUIRED
id ID #IMPLIED
prefix NMTOKEN #IMPLIED
ns CDATA #IMPLIED
Root (Recommended | Possible | Unlikely) "Possible">
The XSC:Name attribute identifies the name of the element, and is required. An
element declaration would look like:
<XSC:ElementDecl Name="Species">
...additionalElementInformation...
</XSC:ElementDecl>
This declaration would declare an element named "Species", which would appear
in an instance as:
<Species>...content...</Species>
The Name attribute must be unique within the set of elements, as it provides
the name of the element as declared here, and is also used by other elements
to refer to this element in their content model declarations. The Name
attribute must also match the Name production in the XML 1.0 spec.
(Effectively, this requires element names to begin with a letter, underscore,
or colon.)
The id attribute, if it appears, must be unique within the document. This
attribute may be used to uniquely identify this ElementDecl element for
reference using XPointers and other tools. The prefix attribute identifies the
prefix that will be applied to this elements and its attributes during
conversion to DTDs, unless overridden in the attribute declaration itself. The
ns attribute identifies the URI which functions as the namespace name for this
element and its attributes. Namespace processing is covered further in Section
3.0, "XSchema and Namespaces".
The Root attribute provides authoring tools with a guide for which elements
are likely root elements for documents. This is intended to simplify the
choices presented to authors during document composition. Composition tools
could use this to build a menu of likely starting points for a document. The
Root attribute is purely a suggestion and does not require any action on the
part of the processor.
Note that an element must declare a content model of some type, using the
Model element, even if that content model is empty. Documentation (in the Doc
element), non-XSchema extensions (in the More element) and attribute
declarations (using the AttGroup element) are optional.
Documentation about the element, additional extensions, content-model
information, and attribute information are stored as sub-elements of the
ElementDecl element. Documentation is covered in 2.6.1, Documentation
Extensions. Additional extensions are covered in 2.6.2, Further Extensions.
Content Models are covered in 2.3, Content Model Declarations, and attributes
are covered in 2.4, Attribute Declarations.
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