xref: /illumos-gate/usr/src/lib/fm/topo/maps/common/topology.dtd.1 (revision 89a7715a55deca73d03076f5c24463717f0aaa91)
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 Copyright 2007 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  propset
116	This element is for associating property groups according to a set type.
117
118	Its attributes are
119
120		type	The type of this property group set.  'product' is the
121			only set type currently supported.
122		set	The list of set types.
123
124-->
125
126<!ELEMENT propset
127	 ( propgroup* ) >
128
129<!ATTLIST propset
130	type	( product ) #REQUIRED
131	set	CDATA #REQUIRED >
132
133<!--
134  propmap
135	This element is for specifying an additional topo map file for
136	properties assigned to a given range.
137
138	Its attributes are
139
140		name		Name of map file
141-->
142
143<!ELEMENT propmap EMPTY >
144
145<!ATTLIST propmap
146	name		CDATA #REQUIRED >
147
148<!-- Methods -->
149
150<!--
151  argval
152
153	A propmethod argument. It has two attributes:
154
155		name    The name of the argument.
156		type    The data type of the argument.
157		value	The value of the arg
158-->
159
160<!ELEMENT argval EMPTY>
161
162<!ATTLIST argval
163        name            CDATA #REQUIRED
164        type            CDATA #REQUIRED
165        value           CDATA #REQUIRED >
166
167<!--
168   propmethod
169
170	This element is for properties that can only be determined dynamically
171	from a plugin.
172
173	Its attributes are
174
175      		name		Name of the method
176      		version		Version of the method API
177      		propname	Name of the property to create
178		proptype	Type of the property to create
179
180<!ELEMENT propmethod
181	( argval* ) >
182
183<!ATTLIST propmethod
184	name		CDATA #REQUIRED
185	version		CDATA #REQUIRED
186	propname	CDATA #REQUIRED
187	proptype	CDATA #REQUIRED>
188<!--
189  enum-method
190
191	This element describes the enumeration method used to
192	populate a composition of topo nodes for a given range of topology
193	nodes.
194
195	Its attributes are
196
197		name	Name of the module exporting an enumeration method.
198
199		version Version of the libtopo API
200
201-->
202
203<!ELEMENT enum-method EMPTY >
204
205<!ATTLIST enum-method
206	name		CDATA #REQUIRED
207	version		CDATA #REQUIRED >
208
209
210<!--
211  node
212
213	This element identifies a topology node instance.
214
215	Its attributes are
216
217		instance The instance number of the node
218
219-->
220
221<!ELEMENT node
222	( propgroup*, dependents*, propset* ) >
223
224<!ATTLIST node
225	instance	CDATA #REQUIRED >
226
227<!--
228  dependents
229
230	Ranges may have a number of "dependent" ranges, linked to
231	the original range hierarchically as children or as a list, siblings.
232
233	Its attribute is:
234		grouping	children | siblings
235-->
236
237<!ELEMENT dependents
238	( range | xi:include )+ >
239
240<!ATTLIST dependents
241	grouping ( children | siblings ) "children" #REQUIRED >
242
243<!--
244  range
245
246    This element identifies a range of possible topology nodes.
247
248    Its attributes are
249
250	name	The common name of all the possible topo nodes
251
252	min	The smallest allowed instance number for an
253		actual topo node.
254
255	max	The largest allowed instance number for an
256		actual topo node.
257
258-->
259
260<!ELEMENT range
261	( enum-method?, propmap?, node*, propgroup*, dependents*,
262	    propset* ) >
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*)>
281
282<!ATTLIST topology
283	name	CDATA #REQUIRED
284	scheme (hc | dev) #REQUIRED >
285