topology.dtd.1 revision 2eeaed14a5e2ed9bd811643ad5bffc3510ca0310
1N/A<?xml version="1.0" encoding="UTF-8"?>
1N/A<!--
1N/A Copyright 2008 Sun Microsystems, Inc. All rights reserved.
1N/A Use is subject to license terms.
1N/A
1N/A CDDL HEADER START
1N/A
1N/A The contents of this file are subject to the terms of the
1N/A Common Development and Distribution License (the "License").
1N/A You may not use this file except in compliance with the License.
1N/A
1N/A You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1N/A or http://www.opensolaris.org/os/licensing.
1N/A See the License for the specific language governing permissions
1N/A and limitations under the License.
1N/A
1N/A When distributing Covered Code, include this CDDL HEADER in each
1N/A file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1N/A If applicable, add the following below this CDDL HEADER, with the
1N/A fields enclosed by brackets "[]" replaced with your own identifying
1N/A information: Portions Copyright [yyyy] [name of copyright owner]
1N/A
1N/A CDDL HEADER END
1N/A
1N/A ident "%Z%%M% %I% %E% SMI"
1N/A-->
1N/A
1N/A<!--
1N/A Topology description DTD
1N/A
1N/A Most attributes are string values (or an individual string from a
1N/A restricted set), but attributes with a specific type requirement are
1N/A noted in the comment describing the element.
1N/A-->
1N/A
1N/A<!--
1N/A XInclude support
1N/A
1N/A Topologies may be composed via the xi:include tag.
1N/A libtopo(3LIB) interfaces enforce that all composed topologies be of the
1N/A same scheme.
1N/A-->
1N/A
1N/A<!ELEMENT xi:include
1N/A (xi:fallback) >
1N/A
1N/A<!ATTLIST xi:include
1N/A href CDATA #REQUIRED
1N/A parse (xml|text) "xml"
1N/A encoding CDATA #IMPLIED
1N/A xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
1N/A >
1N/A
1N/A<!ELEMENT xi:fallback
1N/A ANY
1N/A >
1N/A<!ATTLIST xi:fallback
1N/A xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
1N/A >
1N/A
1N/A<!-- Properties and property groups -->
1N/A
1N/A<!--
1N/A propval
1N/A
1N/A This element is for a singly valued property within a property group.
1N/A
1N/A Its attributes are
1N/A
1N/A name The name of this property.
1N/A
1N/A type The data type for this property.
1N/A
1N/A value The value for this property. Must match type
1N/A restriction of type attribute.
1N/A-->
1N/A
1N/A<!ELEMENT propval EMPTY >
1N/A
1N/A<!ATTLIST propval
1N/A name CDATA #REQUIRED
1N/A type ( int32 | uint32 | int64 | uint64 |
1N/A string | fmri ) #REQUIRED
1N/A value CDATA #REQUIRED
1N/A
1N/A<!--
1N/A propgroup
1N/A
1N/A This element is for a set of related properties on a topo node
1N/A It contains an optional stability element, as well as
1N/A zero or more property-containing elements.
1N/A
1N/A Its attributes are
1N/A
1N/A name The name of this property group.
1N/A name-stability Stability level of the property group name
1N/A data-stability Stability level of the property names and
1N/A content
version Version of the propery group definition
-->
<!ELEMENT propgroup
( propval*, propmethod* ) >
<!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 >
<!--
set
This element is for associating ranges, nodes or property groups
according to a set type.
Its attributes are
type The type of this property group set. 'product' is the
only set type currently supported.
setlist The list of set types.
-->
<!ELEMENT set
( range*, propgroup* ) >
<!ATTLIST set
type ( product ) #REQUIRED
setlist CDATA #REQUIRED >
<!--
propmap
This element is for specifying an additional topo map file for
properties assigned to a given range.
Its attributes are
name Name of map file
-->
<!ELEMENT propmap EMPTY >
<!ATTLIST propmap
name CDATA #REQUIRED >
<!-- Methods -->
<!--
argval
A propmethod argument. It has two attributes:
name The name of the argument.
type The data type of the argument.
value The value of the arg
-->
<!ELEMENT argval EMPTY>
<!ATTLIST argval
name CDATA #REQUIRED
type CDATA #REQUIRED
value CDATA #REQUIRED >
<!--
propmethod
This element is for properties that can only be determined dynamically
from a plugin.
Its attributes are
name Name of the method
version Version of the method API
propname Name of the property to create
proptype Type of the property to create
<!ELEMENT propmethod
( argval* ) >
<!ATTLIST propmethod
name CDATA #REQUIRED
version CDATA #REQUIRED
propname CDATA #REQUIRED
proptype CDATA #REQUIRED>
<!--
enum-method
This element describes the enumeration method used to
populate a composition of topo nodes for a given range of topology
nodes.
Its attributes are
name Name of the module exporting an enumeration method.
version Version of the libtopo API
-->
<!ELEMENT enum-method EMPTY >
<!ATTLIST enum-method
name CDATA #REQUIRED
version CDATA #REQUIRED >
<!--
node
This element identifies a topology node instance.
Its attributes are
instance The instance number of the node
-->
<!ELEMENT node
( propgroup*, dependents*, set*, enum-method* ) >
<!ATTLIST node
instance CDATA #REQUIRED >
<!--
dependents
Ranges may have a number of "dependent" ranges, linked to
the original range hierarchically as children or as a list, siblings.
Its attribute is:
grouping children | siblings
-->
<!ELEMENT dependents
(( range | xi:include )+, set) >
<!ATTLIST dependents
grouping ( children | siblings ) "children" #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?, propmap?, node*, propgroup*, dependents*,
set? ) >
<!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*), set)>
<!ATTLIST topology
name CDATA #REQUIRED
scheme (hc | dev) #REQUIRED >