<?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 >