<?xml version='1.0' encoding='UTF-8' ?>

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

 Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.

-->

<!--Element Definitions-->

<!ELEMENT fsoption	EMPTY>
<!ATTLIST fsoption	name		CDATA #REQUIRED>

<!ELEMENT filesystem	(fsoption)* >

<!ATTLIST filesystem	special		CDATA #REQUIRED
			raw		CDATA ""
			directory	CDATA #REQUIRED
			type		CDATA #REQUIRED>

<!--
 The following is no longer valid for any supported zone brands, but we retain
the definition to aid with migration of existing configurations.
-->

<!ELEMENT inherited-pkg-dir	EMPTY>

<!ATTLIST inherited-pkg-dir	directory	CDATA #REQUIRED>

<!ELEMENT package	EMPTY>
<!ATTLIST package	name		CDATA #REQUIRED
			version		CDATA #REQUIRED>

<!ELEMENT obsoletes	EMPTY>
<!ATTLIST obsoletes	id		CDATA #REQUIRED>

<!ELEMENT incompatible	EMPTY>
<!ATTLIST incompatible	id		CDATA #REQUIRED>

<!ELEMENT patch	(obsoletes | incompatible)* >

<!ATTLIST patch		id		CDATA #REQUIRED>

<!--
 End of obsolete elements.
 -->

<!ELEMENT network	EMPTY>

<!ATTLIST network	address			CDATA ""
			allowed-address		CDATA ""
			defrouter		CDATA ""
			configure-allowed-address	(true | false) "true"
			physical		CDATA #REQUIRED>

<!ELEMENT automatic-network	EMPTY>

<!ATTLIST automatic-network	linkname		CDATA #REQUIRED
				allowed-address		CDATA ""
				defrouter		CDATA ""
				allowed-dhcp-cids	CDATA ""
				auto-mac-address	CDATA ""
				mac-address		CDATA ""
				mac-prefix		CDATA ""
				mac-slot		CDATA ""
				maxbw			CDATA ""
				priority		CDATA ""
				vlan-id			CDATA ""
				rxrings			CDATA ""
				txrings			CDATA ""
				link-protection		CDATA ""
				mtu			CDATA ""
				configure-allowed-address	(true | false)
								"true"
				lower-link		CDATA #REQUIRED
				rxfanout		CDATA ""
				vsi-typeid		CDATA ""
				vsi-vers		CDATA ""
				vsi-mgrid		CDATA ""
				etsbw-lcl		CDATA ""
				cos			CDATA ""
				pkey			CDATA ""
				linkmode		CDATA "">


<!ELEMENT device	EMPTY>

<!ATTLIST device	match		CDATA #REQUIRED
			allow-partition	CDATA ""
			allow-raw-io	CDATA "">

<!--
	Historically, the deleted-device element denoted a used-to-be
	device element.  This was used to keep track of device elements
	deleted or modified by the user, and to cleanse /dev of such
	entries at next zone boot.

	With the ability to now configure devices dynamically, this
	requirement no longer exists, but this element MUST remain in
	perpetuity, since it is possible that an upgraded zone could
	carry a deleted-device element, and would therefore fail XML
	validation if removed
-->
<!ELEMENT deleted-device	EMPTY>

<!ATTLIST deleted-device	match		CDATA #REQUIRED>

<!ELEMENT rctl-value	EMPTY>

<!ATTLIST rctl-value	priv		CDATA #REQUIRED
			limit		CDATA #REQUIRED
			action		CDATA #REQUIRED>

<!ELEMENT rctl		(rctl-value)*>

<!ATTLIST rctl		name		CDATA #REQUIRED>

<!ELEMENT attr		EMPTY>

<!ATTLIST attr		name		CDATA #REQUIRED
			type		(boolean | int | string | uint)
					#REQUIRED
			value		CDATA #REQUIRED>

<!ELEMENT dataset	EMPTY>

<!--
	If alias isn't specified, the default alias (`basename $name`) is
	used.  To allow for zones that were configured prior to dataset
	aliases, the alias is optional.  Note, however, that with the
	introduction of dataset aliases, zonecfg automatically populates
	the alias attribute if it is not specified by the administrator.
-->
<!ATTLIST dataset	name		CDATA #REQUIRED
			alias		CDATA "">

<!--
	The tmp_pool element is separate from the pset element so that
	we can track the importance value at the pool level, where it
	belongs, instead of at the pset level.  Once we have msets this
	will be important since tmp psets and tmp msets will share a common
	pool-level importance.
-->
<!ELEMENT tmp_pool	EMPTY>

<!ATTLIST tmp_pool	importance	CDATA #REQUIRED>

<!ELEMENT pset		EMPTY>

<!ATTLIST pset		ncpu_min	CDATA #REQUIRED
			ncpu_max	CDATA #REQUIRED>

<!ELEMENT mcap		EMPTY>

<!ATTLIST mcap		physcap		CDATA #REQUIRED>

<!ELEMENT admin 	EMPTY>

<!ATTLIST admin     	user		CDATA #REQUIRED
                    	auths		CDATA #REQUIRED>

<!ELEMENT storage	EMPTY>
<!ATTLIST storage	uri		CDATA #REQUIRED>

<!ELEMENT rootzpool	(storage)+>
<!ATTLIST rootzpool	install-size	CDATA "">

<!ELEMENT zpool		(storage)+>
<!ATTLIST zpool		name		CDATA #REQUIRED
			install-size	CDATA "">

<!ELEMENT zone		(filesystem | inherited-pkg-dir | network | device |
			deleted-device | rctl | attr | dataset | package |
			patch | tmp_pool | pset |
			mcap | admin | automatic-network |
			rootzpool | zpool)*>

<!ATTLIST zone		name		CDATA #REQUIRED
			zonepath	CDATA #REQUIRED
			autoboot	(true | false) #REQUIRED
			file-mac-profile	CDATA ""
			ip-type		CDATA ""
			hostid		CDATA ""
			pool		CDATA ""
			limitpriv	CDATA ""
			bootargs	CDATA ""
			brand		CDATA ""
			scheduling-class	CDATA ""
			fs-allowed	CDATA ""
			version		NMTOKEN #FIXED '1'>
