Current File : //usr/share/install/target.dtd.2
<!--

 Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.

-->

<!ELEMENT target (disk*, logical?)>
<!ATTLIST target name CDATA #IMPLIED>

<!ELEMENT disk ((disk_name|disk_prop|disk_keyword|iscsi), (gpt_partition*|partition*|slice*), vdev_label?)>
<!--
     in_zpool and in_vdev are reference attributes to a
     corresponding <zpool> name and <vdev> name under the <logical>
     element.  This is how physical elements are linked with logical
     entries.

     The values of the in_zpool and in_vdev attributes, if given, must
     exactly match the name attributes of a zpool or vdev.
     If one or both of these attributes are specified, it must be
     possible to uniquely identify a zpool or vdev from them.

     The in_zpool and in_vdev attributes are present on disk, gpt_partition,
     partition and slice elements.  However, if either or both of these
     attributes are specified for one of these elements, they should not
     also be specified for any of its sub-elements or an error will occur. 
-->
<!ATTLIST disk in_zpool CDATA #IMPLIED>
<!ATTLIST disk in_vdev CDATA #IMPLIED>
<!--
     The whole_disk attribute indicates whether or not zfs has
     control over the entire disk. If this attribute is true,
     control of the entire disk is given to zfs.
-->  
<!ATTLIST disk whole_disk (true|false) "false">

<!-- Reserved for private use.  -->
<!ELEMENT vdev_label EMPTY>
<!ATTLIST vdev_label ctd CDATA #IMPLIED>
<!ATTLIST vdev_label devid CDATA #IMPLIED>
<!ATTLIST vdev_label devpath CDATA #IMPLIED>

<!--
    Disk name can be one of ctd, volid, devpath or devid name.
    Default is ctd.
-->

<!ELEMENT disk_name EMPTY>
<!ATTLIST disk_name name CDATA #REQUIRED>
<!ATTLIST disk_name name_type (ctd|volid|devpath|devid|receptacle|wwn) "ctd">

<!ELEMENT disk_prop EMPTY>
<!ATTLIST disk_prop dev_type CDATA #IMPLIED>
<!ATTLIST disk_prop dev_vendor CDATA #IMPLIED>
<!ATTLIST disk_prop dev_chassis CDATA #IMPLIED>
<!--
     dev_size must be number suffixed with a size unit.  e.g. 100gb
-->
<!ATTLIST disk_prop dev_size CDATA #IMPLIED>

<!ELEMENT disk_keyword EMPTY>
<!ATTLIST disk_keyword key (auto|boot_disk) #REQUIRED>

<!--
     gpt_partition names are numeric values, e.g. 1 will be
     interpreted as partition 1.

     No size specification means we create the slice or partition with
     a size value set to the size of parent element.
-->

<!ELEMENT gpt_partition (size?)>
<!ATTLIST gpt_partition name CDATA #REQUIRED>
<!ATTLIST gpt_partition action (create|delete|preserve) "create">

<!--
     If the create action is specified for a GPT Partition that already
     exists, then the force attribute defines how to proceed.  If
     force is true then the operation will continue; otherwise an
     error will occur.
-->
<!ATTLIST gpt_partition force (true|false) "false">

<!--
     The in_zpool and in_vdev attributes follow the same rules as the
     similarly named attributes of disk
-->
<!ATTLIST gpt_partition in_zpool CDATA #IMPLIED>
<!ATTLIST gpt_partition in_vdev CDATA #IMPLIED> 

<!--
    The part_type attribute specfies the GUID partition type of the
    gpt_partition.
    The value can either be one of the supported GPT type aliases or an
    explicit GUID hexadecimal string value.

    The following aliases are supported:
      1. "solaris"      : Solaris partition

    Explicit GUID hexadecimal string values for other GUID types are defined
    in /usr/include/sys/efi_partition.h
    For example:
      "{6A898CC3-1DD2-11B2-99A6-080020736631}" specifies a Solaris partition
-->
<!ATTLIST gpt_partition part_type CDATA "solaris">

<!--
     Partition and Slice names are numeric values, e.g. 1, will be
     interpreted as partition 1 or slice 1.

     No size specification means we create the slice or partition with
     a size value set to the size of parent element.

     The name attribute may only be omitted if action is
     use_existing_solaris2, in which case there must already be a
     Solaris2 partition on the disk and this partition will be selected.
     In addition, if the action is use_existing_solaris2, both the name
     and part_type attributes are ignored when selecting a partition.
-->

<!ELEMENT partition (size?, slice*)>
<!ATTLIST partition name CDATA #IMPLIED>
<!ATTLIST partition action (create|delete|preserve|use_existing_solaris2) "create">
<!ATTLIST partition part_type CDATA "191">

<!--
     The in_zpool and in_vdev attributes follow the same rules as the
     similarly named attributes of disk
-->

<!ATTLIST partition in_zpool CDATA #IMPLIED>
<!ATTLIST partition in_vdev CDATA #IMPLIED> 

<!ELEMENT slice (size?)>
<!ATTLIST slice name CDATA #REQUIRED>
<!ATTLIST slice action (create|delete|preserve|use_existing) "create">

<!--
     If the create action is specified for a slice that already
     exists, then the force attribute defines how to proceed.  If
     force is true then the operation will continue; otherwise an
     error will occur.
-->
<!ATTLIST slice force (true|false) "false">

<!--
     The in_zpool and in_vdev attributes follow the same rules as the
     similarly named attributes of disk
-->
<!ATTLIST slice in_zpool CDATA #IMPLIED>
<!ATTLIST slice in_vdev CDATA #IMPLIED> 

<!--
     If the slice is to be used for swap, set is_swap to true.
-->
<!ATTLIST slice is_swap (true|false) "false">

<!--
     The val attribute of size must be suffixed with a size unit.
     e.g. 100gb, 2secs, 2tb.
-->
<!ELEMENT size EMPTY>
<!ATTLIST size val CDATA #REQUIRED>
<!ATTLIST size start_sector CDATA #IMPLIED>

<!--
    iscsi does not have an action attribute. We use iSCSI devices but
    we do not operate directly on them.

    If the source attribute is set to 'dhcp', we will use dhcp to
    retrieve the Rootpath of the iSCSI boot parameters.  No other
    attributes should be specified.

    If the source attribute is set to 'manifest', target_lun and
    target_ip must be specified.

    If the target_name attribute is not provided, we will use iscsiadm
    in sendtargets mode, otherwise we will set up static discovery.
-->
<!ELEMENT iscsi EMPTY>
<!ATTLIST iscsi source (manifest|dhcp) "manifest">
<!ATTLIST iscsi target_name CDATA #IMPLIED>
<!ATTLIST iscsi target_lun CDATA #IMPLIED>
<!ATTLIST iscsi target_port CDATA #IMPLIED>
<!ATTLIST iscsi target_ip CDATA #IMPLIED>
<!ATTLIST iscsi initiator_name CDATA #IMPLIED>
<!ATTLIST iscsi chap_name CDATA #IMPLIED>
<!ATTLIST iscsi chap_password CDATA #IMPLIED>

<!ELEMENT logical (zpool*)>
<!ATTLIST logical noswap (true|false) "false">
<!ATTLIST logical nodump (true|false) "false">

<!--
     If zpools and/or vdevs are specified, then they must be associated
     with disk_names, partitions or slices via the use of the in_zpool
     and/or in_vdev attributes of those elements, described above.
-->
<!ELEMENT zpool (vdev*, filesystem*, zvol*, pool_options?, dataset_options?, be?)>
<!ATTLIST zpool name CDATA #REQUIRED>
<!ATTLIST zpool action (create|delete|preserve|use_existing) "create">
<!ATTLIST zpool is_boot (true|false) "false">
<!ATTLIST zpool is_root (true|false) "false">
<!ATTLIST zpool mountpoint CDATA #IMPLIED>

<!--
     The vdev name is purely used for matching the value of the in_vdev
     attribute on disks, partitions or slices.
-->
<!ELEMENT vdev EMPTY>
<!ATTLIST vdev name CDATA #REQUIRED>

<!--
    Redundancy needs to be part of the vdev grouping,
    not a property on zpool itself. There can be multiple
    vdev groupings within one pool configuration.
-->
<!ATTLIST vdev redundancy (mirror|raidz|raidz1|raidz2|raidz3|spare|log|cache|logmirror|none) "mirror">

<!--
    Filesystem options are for zfs filesystems. The format of these
    is described in below. Any editable ZFS filesystem property
    can be set at creation time. 

    If a filesystem has the in_be attribute set to "true" then that 
    dataset will be created within the BE rather than as a shared
    dataset.  These filesystems require a full "path" name instead of
    a Filesystem name.  e.g. "/opt" or "/var" instead of "export/home"
-->
<!ELEMENT filesystem (options?)>
<!ATTLIST filesystem name CDATA #REQUIRED>
<!ATTLIST filesystem action (create|delete|preserve) "create">
<!ATTLIST filesystem mountpoint CDATA #IMPLIED>
<!ATTLIST filesystem in_be (true|false) "false">

<!ELEMENT zvol (options?, size) >
<!ATTLIST zvol action (create|delete|preserve|use_existing) "create">
<!ATTLIST zvol name CDATA #REQUIRED>
<!--
     If the zvol is to be used as a swap device, set use to swap.
     If the zvol is to be used as a dump device, set use to dump.
-->
<!ATTLIST zvol use (none|swap|dump) "none">

<!--
    An option consists of a key/value combination. 
    
    - The key is a zfs or zpool property, depending on the context of its use.
    - The value is the text value for the specified property.

    e.g.

        <option name="compression" value="on"/>
-->

<!ELEMENT option EMPTY>
<!ATTLIST option name CDATA #REQUIRED>
<!ATTLIST option value CDATA #REQUIRED>

<!--
     The pool_options string, which is also a parsable string, can include both
     pool options and the dataset options for the automatically created pool
     dataset.

     pool_options and dataset_options will be combined when creating a pool.

     For example:

        <pool_options>
          <option name="altroot" value="/a"/>
          <option name="autoexpand" value="off"/>
          <option name="delegation" value="off"/>
        </pool_options>
        <dataset_options>
          <option name="atime" value="on"/>
          <option name="compression" value="lzjb"/>
        </dataset_options>

    would result in a call to zpool like:

        zpool create -o altroot=/a -o autoexpand=off -o delegation=off \
            -O atime=on -O compression=lzjb

-->
<!ELEMENT pool_options (option+)>
<!ELEMENT dataset_options (option+)>

<!--
     Option elements contain 1 or more <option> elements which specify the
     names and values for the options to be passed.

        <options>
          <option name="atime" value="on"/>
          <option name="compression" value="lzjb"/>
        </options>
-->
<!ELEMENT options (option+)>

<!--
     The be element is used to control the name of the BE created by
     consumers.  If not specified, it defaults to solaris

     Optionally it is possible to provide zfs properties to set on the new BE
     in the <options> sub-tag.
-->
<!ELEMENT be (options?)>
<!ATTLIST be name CDATA #REQUIRED>