xref: /titanic_41/usr/src/lib/fm/topo/maps/common/topology.dtd.1 (revision 9ec394dbf343c1f23c6e13c39df427f238e5a369)
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
4 Use is subject to license terms.
5
6 CDDL HEADER START
7
8 The contents of this file are subject to the terms of the
9 Common Development and Distribution License (the "License").
10 You may not use this file except in compliance with the License.
11
12 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13 or http://www.opensolaris.org/os/licensing.
14 See the License for the specific language governing permissions
15 and limitations under the License.
16
17 When distributing Covered Code, include this CDDL HEADER in each
18 file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19 If applicable, add the following below this CDDL HEADER, with the
20 fields enclosed by brackets "[]" replaced with your own identifying
21 information: Portions Copyright [yyyy] [name of copyright owner]
22
23 CDDL HEADER END
24
25    ident	"%Z%%M%	%I%	%E% SMI"
26-->
27
28<!--
29  Topology description DTD
30
31    Most attributes are string values (or an individual string from a
32    restricted set), but attributes with a specific type requirement are
33    noted in the comment describing the element.
34-->
35
36<!--
37  XInclude support
38
39    Topologies may be composed via the xi:include tag.
40    libtopo(3LIB) interfaces enforce that all composed topologies be of the
41    same scheme.
42-->
43
44<!ELEMENT xi:include
45	(xi:fallback) >
46
47<!ATTLIST xi:include
48  href CDATA #REQUIRED
49  parse (xml|text) "xml"
50  encoding CDATA #IMPLIED
51  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
52  >
53
54<!ELEMENT xi:fallback
55  ANY
56  >
57<!ATTLIST xi:fallback
58  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
59  >
60
61<!-- Properties and property groups -->
62
63<!--
64  propval
65
66 	This element is for a singly valued property within a property group.
67
68	Its attributes are
69
70		name	The name of this property.
71
72		type	The data type for this property.
73
74		value	The value for this property.  Must match type
75			restriction of type attribute.
76-->
77
78<!ELEMENT propval EMPTY >
79
80<!ATTLIST propval
81	name		CDATA #REQUIRED
82	type		( int32 | uint32 | int64 | uint64 |
83			  string | fmri ) #REQUIRED
84	value		CDATA #REQUIRED >
85
86<!--
87  propgroup
88
89	This element is for a set of related properties on a topo node
90	It contains an optional stability element, as well as
91	zero or more property-containing elements.
92
93	Its attributes are
94
95		name		The name of this property group.
96		name-stability	Stability level of the property group name
97		data-stability	Stability level of the property names and
98				content
99		version		Version of the propery group definition
100
101-->
102
103<!ELEMENT propgroup
104	( propval*, propmethod* ) >
105
106<!ATTLIST propgroup
107	name		CDATA #REQUIRED
108	version		CDATA #REQUIRED
109	name-stability	( Private | Standard | Stable | Evolving | Unstable |
110                        External | Obsolete ) #REQUIRED
111	data-stability	( Private | Standard | Stable | Evolving | Unstable |
112                        External | Obsolete ) #REQUIRED >
113
114<!--
115  set
116	This element is for associating ranges, nodes or property groups
117	according to a set type.
118
119	Its attributes are
120
121		type	The type of this property group set.  'product' is the
122			only set type currently supported.
123		setlist	The list of set types.
124
125-->
126
127<!ELEMENT set
128	 ( range*, propgroup* ) >
129
130<!ATTLIST set
131	type	( product ) #REQUIRED
132	setlist	CDATA #REQUIRED >
133
134<!--
135  propmap
136	This element is for specifying an additional topo map file for
137	properties assigned to a given range.
138
139	Its attributes are
140
141		name		Name of map file
142-->
143
144<!ELEMENT propmap EMPTY >
145
146<!ATTLIST propmap
147	name		CDATA #REQUIRED >
148
149<!-- Methods -->
150
151<!--
152  argval
153
154	A propmethod argument. It has two attributes:
155
156		name    The name of the argument.
157		type    The data type of the argument.
158		value	The value of the arg
159-->
160
161<!ELEMENT argval EMPTY>
162
163<!ATTLIST argval
164        name            CDATA #REQUIRED
165        type            CDATA #REQUIRED
166        value           CDATA #REQUIRED >
167
168<!--
169   propmethod
170
171	This element is for properties that can only be determined dynamically
172	from a plugin.
173
174	Its attributes are
175
176      		name		Name of the method
177      		version		Version of the method API
178      		propname	Name of the property to create
179		proptype	Type of the property to create
180-->
181
182<!ELEMENT propmethod
183	( argval* ) >
184
185<!ATTLIST propmethod
186	name		CDATA #REQUIRED
187	version		CDATA #REQUIRED
188	propname	CDATA #REQUIRED
189	proptype	CDATA #REQUIRED>
190
191<!--
192  enum-method
193
194	This element describes the enumeration method used to
195	populate a composition of topo nodes for a given range of topology
196	nodes.
197
198	Its attributes are
199
200		name	Name of the module exporting an enumeration method.
201
202		version Version of the libtopo API
203
204-->
205
206<!ELEMENT enum-method EMPTY >
207
208<!ATTLIST enum-method
209	name		CDATA #REQUIRED
210	version		CDATA #REQUIRED >
211
212<!--
213  node
214
215	This element identifies a topology node instance.
216
217	Its attributes are
218
219		instance The instance number of the node
220
221-->
222
223<!ELEMENT node
224	( propgroup*, dependents*, set*, enum-method* ) >
225
226<!ATTLIST node
227	instance	CDATA #REQUIRED >
228
229<!--
230  dependents
231
232	Ranges may have a number of "dependent" ranges, linked to
233	the original range hierarchically as children or as a list, siblings.
234
235	Its attribute is:
236		grouping	children | siblings
237-->
238
239<!ELEMENT dependents
240	(( range | xi:include )*, set*) >
241
242<!ATTLIST dependents
243	grouping ( children | siblings ) #REQUIRED >
244
245<!--
246  range
247
248    This element identifies a range of possible topology nodes.
249
250    Its attributes are
251
252	name	The common name of all the possible topo nodes
253
254	min	The smallest allowed instance number for an
255		actual topo node.
256
257	max	The largest allowed instance number for an
258		actual topo node.
259-->
260
261<!ELEMENT range
262	( enum-method?, propmap?, node*, propgroup*, set*, dependents* ) >
263
264<!ATTLIST range
265	name		CDATA #REQUIRED
266	min		CDATA #REQUIRED
267	max		CDATA #REQUIRED >
268
269<!--
270  topology
271
272	This is the root-level for the scheme-specific topology
273
274	Its attributes are:
275		name	topology name
276		scheme 	( hc | dev  )
277-->
278
279<!ELEMENT topology
280	((range* | xi:include*), set*)>
281
282<!ATTLIST topology
283	name	CDATA #REQUIRED
284	scheme (hc | dev) #REQUIRED >
285