<!-- Lustre Management DTD -->\r
\r
<!-- basic entities -->\r
-<!ENTITY % basic.content '#PCDATA'>\r
-<!ENTITY % id.content 'num | id | uuid'>\r
+<!ENTITY % tag.content "(#PCDATA)">\r
+<!ENTITY % tag.ref "\r
+ num CDATA #IMPLIED\r
+ name CDATA #IMPLIED\r
+ uuidref CDATA #REQUIRED">\r
+<!ENTITY % tag.attr "\r
+ name CDATA #REQUIRED\r
+ uuid CDATA #REQUIRED">\r
\r
<!-- main elements -->\r
-<!ELEMENT lustre (node | profile | mountpoint |\r
- mds | obd | ost | osc | lov | router)*>\r
-\r
-<!ELEMENT profile (mountpoint_id, service_id)>\r
-<!ATTLIST profile id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
-\r
-<!ELEMENT mountpoint (path, fileset, mds_id, lov_id)>\r
-<!ATTLIST mountpoint id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
-\r
-<!ELEMENT node (profile_id)>\r
-<!ATTLIST node id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
-\r
-<!ELEMENT ldlm ()*>\r
-<!ATTLIST ldlm id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
-\r
-<!ELEMENT mds (fstype | device | server_id | failover_id)*>\r
-<!ATTLIST mds id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
+<!ELEMENT lustre (node | profile | mountpoint | ldlm |\r
+ mds | mdc | obd | ost | osc | lov | router)*>\r
+\r
+<!ELEMENT profile (service_ref)*>\r
+<!ATTLIST profile %tag.attr;>\r
+<!ELEMENT mountpoint (path | fileset | mdc_ref | osc_ref)*>\r
+<!ATTLIST mountpoint %tag.attr;>\r
+<!ELEMENT node (network*, profile_ref)>\r
+<!ATTLIST node %tag.attr;>\r
+<!ELEMENT ldlm EMPTY>\r
+<!ATTLIST ldlm %tag.attr;>\r
\r
<!ELEMENT obd (fstype | device | autoformat)*>\r
-<!ATTLIST obd id #CDATA #REQUIRED uuid #CDATA #REQUIRED\r
- type (obdfilter | obdext2 | obdecho) 'obdfilter'>\r
-\r
-<!ELEMENT ost (server_id | failover_id)*>\r
-<!ATTLIST ost id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
- \r
-<!ELEMENT osc (network)*>\r
-<!ATTLIST osc id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
-\r
-<!ELEMENT mdc (network)*>\r
-<!ATTLIST mdc id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
-\r
-<!ELEMENT lov (osc_id | obd_id | mdc_id)*>\r
-<!ATTLIST lov id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
-\r
+<!ATTLIST obd %tag.attr; type (obdfilter | obdext2 | obdecho) 'obdfilter'>\r
+<!ELEMENT ost (network_ref | obd_ref | failover_ref)*>\r
+<!ATTLIST ost %tag.attr;>\r
+<!ELEMENT mds (network_ref | fstype | device | autoformat | server_ref | failover_ref)*>\r
+<!ATTLIST mds %tag.attr;>\r
+\r
+<!ELEMENT osc (network_ref | obd_ref)*>\r
+<!ATTLIST osc %tag.attr;>\r
+<!ELEMENT mdc (network_ref | mds_ref)*>\r
+<!ATTLIST mdc %tag.attr;>\r
+<!ELEMENT lov (devices | mdc_ref)*>\r
+<!ATTLIST lov %tag.attr;>\r
+<!ELEMENT devices (osc_ref)+>\r
+<!ATTLIST devices stripesize CDATA #REQUIRED\r
+ stripeoffset CDATA #REQUIRED\r
+ pattern CDATA #REQUIRED>\r
<!ELEMENT router (misc)*>\r
-<!ATTLIST router id #CDATA #REQUIRED uuid #CDATA #REQUIRED>\r
+<!ATTLIST router %tag.attr;>\r
\r
<!-- basic elements -->\r
-<!ELEMENT network (%basic.content;)*>\r
-<!ATTLIST network type (tcp | elan | myrinet) 'tcp'>\r
-\r
-<!ELEMENT fstype (%basic.content;)*>\r
-<!ELEMENT device (%basic.content;)*>\r
-<!ELEMENT server (%basic.content;)*>\r
-<!ELEMENT autoformat (%basic.content;)*>\r
-<!ELEMENT path (%basic.content;)*>\r
-<!ELEMENT fileset (%basic.content;)*>\r
-\r
-<!ELEMENT profile_id (%basic.content;)*>\r
-<!ATTLIST profile_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT ldlm_id (%basic.content;)*>\r
-<!ATTLIST ldlm_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT mds_id (%basic.content;)*>\r
-<!ATTLIST mds_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT obd_id (%basic.content;)*>\r
-<!ATTLIST obd_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT osc_id (%basic.content;)*>\r
-<!ATTLIST osc_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT lov_id (%basic.content;)*>\r
-<!ATTLIST lov_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT mdc_id (%basic.content;)*>\r
-<!ATTLIST mdc_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT mountpoint_id (%basic.content;)*>\r
-<!ATTLIST mountpoint_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT service_id (%basic.content;)*>\r
-<!ATTLIST service_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT server_id (%basic.content;)*>\r
-<!ATTLIST server_id (%id.content;)* #CDATA #IMPLIED>\r
-<!ELEMENT failover_id (%basic.content;)*>\r
-<!ATTLIST failover_id (%id.content;)* #CDATA #IMPLIED>\r
+<!ELEMENT network (server | port)*>\r
+<!ATTLIST network type (tcp | elan | myrinet) 'tcp'\r
+ %tag.attr;>\r
+\r
+<!ELEMENT fstype %tag.content;>\r
+<!ELEMENT device %tag.content;>\r
+<!ATTLIST device size CDATA #IMPLIED>\r
+<!ELEMENT server %tag.content;>\r
+<!ELEMENT port %tag.content;>\r
+<!ELEMENT autoformat %tag.content;>\r
+<!ELEMENT path %tag.content;>\r
+<!ELEMENT fileset %tag.content;>\r
+\r
+<!-- id tag elements -->\r
+<!ELEMENT network_ref %tag.content;>\r
+<!ATTLIST network_ref %tag.ref;>\r
+<!ELEMENT profile_ref %tag.content;>\r
+<!ATTLIST profile_ref %tag.ref;>\r
+<!ELEMENT obd_ref %tag.content;>\r
+<!ATTLIST obd_ref %tag.ref;>\r
+<!ELEMENT mds_ref %tag.content;>\r
+<!ATTLIST mds_ref %tag.ref;>\r
+<!ELEMENT osc_ref %tag.content;>\r
+<!ATTLIST osc_ref %tag.ref;>\r
+<!ELEMENT lov_ref %tag.content;>\r
+<!ATTLIST lov_ref %tag.ref;>\r
+<!ELEMENT mdc_ref %tag.content;>\r
+<!ATTLIST mdc_ref %tag.ref;>\r
+<!ELEMENT mountpoint_ref %tag.content;>\r
+<!ATTLIST mountpoint_ref %tag.ref;>\r
+<!ELEMENT service_ref %tag.content;>\r
+<!ATTLIST service_ref %tag.ref;>\r
+<!ELEMENT server_ref %tag.content;>\r
+<!ATTLIST server_ref %tag.ref;>\r
+<!ELEMENT failover_ref %tag.content;>\r
+<!ATTLIST failover_ref %tag.ref;>\r
\r