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