topology.dtd.1 revision 0eb822a1c0c2bea495647510b75f77f0e57633eb
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2006 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
CDDL HEADER START
The contents of this file are subject to the terms of the
Common Development and Distribution License (the "License").
You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions
and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each
file and include the License file at usr/src/OPENSOLARIS.LICENSE.
If applicable, add the following below this CDDL HEADER, with the
fields enclosed by brackets "[]" replaced with your own identifying
information: Portions Copyright [yyyy] [name of copyright owner]
CDDL HEADER END
ident "%Z%%M% %I% %E% SMI"
-->
<!--
Topology description DTD
Most attributes are string values (or an individual string from a
restricted set), but attributes with a specific type requirement are
noted in the comment describing the element.
-->
<!--
XInclude support
Topologies may be composed via the xi:include tag.
libtopo(3LIB) interfaces enforce that all composed topologies be of the
same scheme.
-->
<!ELEMENT xi:include
(xi:fallback) >
<!ATTLIST xi:include
href CDATA #REQUIRED
parse (xml|text) "xml"
encoding CDATA #IMPLIED
xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
>
<!ELEMENT xi:fallback
ANY
>
<!ATTLIST xi:fallback
xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
>
<!-- Properties and property groups -->
<!--
propval
This element is for a singly valued property within a property
group.
Its attributes are
name The name of this property.
type The data type for this property.
value The value for this property. Must match type
restriction of type attribute.
immutable This value remains unchanged for the lifetime of a snapshot.
-->
<!ELEMENT propval EMPTY >
<!ATTLIST propval
name CDATA #REQUIRED
type ( int32 | uint32 | int64 | uint64 |
string | fmri ) #REQUIRED
value CDATA #REQUIRED
immutable ( true | false ) "true" >
<!--
propgroup
This element is for a set of related properties on a topo node
It contains an optional stability element, as well as
zero or more property-containing elements.
Its attributes are
name The name of this property group.
name-stability Stability level of the property group name
data-stability Stability level of the property names and content
version Version of the propery group definition
-->
<!ELEMENT propgroup
( propval* ) >
<!ATTLIST propgroup
name CDATA #REQUIRED
version CDATA #REQUIRED
name-stability ( Private | Standard | Stable | Evolving | Unstable |
External | Obsolete ) #REQUIRED
data-stability ( Private | Standard | Stable | Evolving | Unstable |
External | Obsolete ) #REQUIRED >
<!-- Methods -->
<!--
enum-method
This element describes the enumeration method used to
populate a composition of topo nodes. Its interpretation is
left to the enumerator to which a particular topo node is
assigned. It contains a set of attributes, context, and an optional
stability element for the optional args that can be included.
Its attributes are
name Name of this method. The method names are
usually a defined interface of the enumerator to which a
topo instance assigned.
version Version of the enumeration API
-->
<!ELEMENT enum-method EMPTY >
<!ATTLIST enum-method
name CDATA #REQUIRED
version CDATA #REQUIRED >
<!--
node
This element identifies a known topology node.
Its attributes are
instance The instance number of the known node
static Boolean to determine if node is statically created
by the XML parser or an enumerator
-->
<!ELEMENT node
( propgroup*, dependents* ) >
<!ATTLIST node
instance CDATA #REQUIRED
static ( true | false ) "false" >
<!--
dependents
Ranges may have a number of "dependent" ranges, linked to
the original range hierarchically as children or siblings.
Its attribute is:
grouping "children", "siblings"
-->
<!ELEMENT dependents
( range | xi:include )+ >
<!ATTLIST dependents
grouping ( children | siblings ) #REQUIRED >
<!--
range
This element identifies a range of possible topology nodes.
Its attributes are
name The common name of all the possible topo nodes
min The smallest allowed instance number for an
actual topo node.
max The largest allowed instance number for an
actual topo node.
-->
<!ELEMENT range
( enum-method?, node*, propgroup*, dependents* ) >
<!ATTLIST range
name CDATA #REQUIRED
min CDATA #REQUIRED
max CDATA #REQUIRED >
<!--
topology
This is the root-level for the scheme-specific topology
Its attributes are:
name topology name
scheme "hc", "dev"
-->
<!ELEMENT topology
(range* | xi:include*)>
<!ATTLIST topology
name CDATA #REQUIRED
scheme (hc | dev) #REQUIRED >