XML: Comments and declarations

author-image
CIOL Bureau
Updated On
New Update

In the previous section we learnt how to create elements and declare their
content scheme. Let's begin this session with attributes.

Advertisment

Attributes

Attributes are modifiers of elements, which have names and values following
the same rules as Element names. That is, they are 'case-sensitive', must start
with a letter or an underscore character, etc. Elements can have one or more
attributes. An attribute is defined in the start tag with the attribute name
separated from the value by an equals ( = ) sign and the value inside single or
double quotes.

For example, in main="true">314-666-1897; "number" is the
element name, "main" is the attribute name and "true" is the
value of "main".

Attribute list declarations

Attribute list declarations identify which elements may have attributes,
what attributes they may have, what values the attributes may hold, and what
value is the default. A typical attribute list declaration looks like this:

Advertisment

Language

ID

Title

Advertisment

CDATA

Type ( comedy | tragedy ) 'good' >

As we see in the above example, the element called "movies" has
three attributes:

Advertisment
  • Language, which is an ID and is required
  • Title, which is a string (character data) and is not required and
  • Type, which must be either comedy or tragedy and
    defaults to good, if no value is specified.

Each attribute in a declaration has three parts: a name, a type and a default
value. You are free to select any name you wish, subject to some slight
restrictions, but names cannot be repeated on the same element.

That’s about attribute list declarations. Now, let us see the different
types of attributes.

Advertisment
  1. ID: The value of an ID attribute must be a name. All of the ID values used
    in a document must be different. IDs uniquely identify individual elements
    in a document. Elements can have only a single ID attribute.
  2. CDATA: The CDATA attributes are strings and any text form is allowed.
  3. IDREF: An IDREF attribute's value must be the value of a single ID
    attribute on some element in the document. The value of an IDREF attribute
    may contain multiple IDREF values separated by white spaces.
  4. ENTITY: An ENTITY attribute's value must be the name of a single entity.
    The value of an "entities" attribute may contain multiple entity
    names separated by white space. (We will discuss entities in detail in the
    next session)
  5. NMTOKEN: The name token attributes are a restricted form of string
    attribute. In general, an "nmtoken" attribute must consist of a
    single word. But it does not have any other constraint like it does have to
    match another attribute or declaration. The value of an "nmtokens"
    attribute may contain multiple "nmtokens" values separated by
    white space.

You can specify that the value of an attribute must be taken from a specific
list of names. The different types in this are:

  1. #REQUIRED: The attribute must have an explicitly specified value on every
    occurrence of the element in the document.
  2. #IMPLIED: The attribute value is not required, and no default value is
    provided. If a value is not specified, the XML processor must proceed
    without one.
  3. #FIXED "value": An attribute declaration may specify that an
    attribute has a fixed value. In this case, the attribute is not required,
    but if it occurs, it must have the specified value.
Advertisment

Comments:

The XML parser ignores comments. Comments, as usual, are used for remarks by the
author for easy understanding of the code. The start tag for a comment is
. Comments must always be set outside the XML
markup, as the following example shows:



Josh

Speed

tech-news