--- /dev/null
+<!-- Lustre Management DTD -->
+
+<!-- basic entities -->
+<!ENTITY % object.content "(#PCDATA)">
+<!ENTITY % object.attr "
+ name CDATA #REQUIRED
+ uuid CDATA #REQUIRED">
+
+<!ENTITY % objref.content "(#PCDATA)">
+<!ENTITY % objref.attr "uuidref CDATA #REQUIRED">
+
+<!-- main elements -->
+<!ELEMENT lustre (node | profile | mountpoint | ldlm | echoclient |
+ mds | obd | ost | lov | lovconfig)*>
+
+<!ELEMENT node (network | profile_ref)*>
+<!ATTLIST node %object.attr;
+ router CDATA #IMPLIED>
+
+<!ELEMENT network (nid | port | route_tbl | sendmem | recvmem)*>
+<!ATTLIST network %object.attr;
+ nettype (tcp | elan | gm) 'tcp'>
+
+<!ELEMENT routetbl (route)*>
+<!ATTLIST routetbl %object.attr;>
+<!ELEMENT route %object.content;>
+<!ATTLIST route type (elan | tcp | gm) #REQUIRED
+ gw CDATA #REQUIRED
+ lo CDATA #REQUIRED
+ hi CDATA #IMPLIED >
+
+<!ELEMENT profile (ldlm_ref | network_ref | obd_ref | ost_ref |
+ echoclient_ref | mds_ref | lov_ref |
+ lovconfig_ref| mountpoint_ref)*>
+<!ATTLIST profile %object.attr;>
+
+<!ELEMENT mountpoint (path | fileset | mds_ref | obd_ref)*>
+<!ATTLIST mountpoint %object.attr;>
+
+<!ELEMENT echoclient (obd_ref)>
+<!ATTLIST echoclient %object.attr;>
+
+<!ELEMENT ldlm EMPTY>
+<!ATTLIST ldlm %object.attr;>
+
+<!ELEMENT obd (fstype | devpath | devsize | autoformat | activetarget)*>
+<!ATTLIST obd %object.attr;
+ obdtype (obdfilter | obdecho) 'obdfilter'>
+
+<!ELEMENT ost (network_ref | obd_ref | failover_ref)*>
+<!ATTLIST ost %object.attr;>
+
+<!ELEMENT mds (network_ref | fstype | devpath | devsize | autoformat |
+ server_ref | failover_ref | node_ref )*>
+<!ATTLIST mds %object.attr;>
+
+<!ELEMENT lov (mds_ref |(obd_ref)+)*>
+<!ATTLIST lov %object.attr;
+ stripesize CDATA #REQUIRED
+ stripecount CDATA #REQUIRED
+ stripeoffset CDATA #IMPLIED
+ stripepattern CDATA #REQUIRED>
+
+<!ELEMENT lovconfig (lov_ref)>
+<!ATTLIST lovconfig %object.attr;>
+
+<!-- basic elements -->
+<!ELEMENT fstype %object.content;>
+<!ELEMENT nid %object.content;>
+<!ELEMENT port %object.content;>
+<!ELEMENT send_mem %object.content;>
+<!ELEMENT recv_mem %object.content;>
+<!ELEMENT autoformat %object.content;>
+<!ELEMENT activetarget %object.content;>
+<!ELEMENT devpath %object.content;>
+<!ELEMENT devsize %object.content;>
+<!ELEMENT path %object.content;>
+<!ELEMENT fileset %object.content;>
+
+<!-- object reference tag elements -->
+<!ELEMENT network_ref %objref.content;>
+<!ATTLIST network_ref %objref.attr;>
+<!ELEMENT node_ref %objref.content;>
+<!ATTLIST node_ref %objref.attr;>
+<!ELEMENT profile_ref %objref.content;>
+<!ATTLIST profile_ref %objref.attr;>
+<!ELEMENT obd_ref %objref.content;>
+<!ATTLIST obd_ref %objref.attr;>
+<!ELEMENT mds_ref %objref.content;>
+<!ATTLIST mds_ref %objref.attr;>
+<!ELEMENT ost_ref %objref.content;>
+<!ATTLIST ost_ref %objref.attr;>
+<!ELEMENT lov_ref %objref.content;>
+<!ATTLIST lov_ref %objref.attr;>
+<!ELEMENT lovconfig_ref %objref.content;>
+<!ATTLIST lovconfig_ref %objref.attr;>
+<!ELEMENT mountpoint_ref %objref.content;>
+<!ATTLIST mountpoint_ref %objref.attr;>
+<!ELEMENT echoclient_ref %objref.content;>
+<!ATTLIST echoclient_ref %objref.attr;>
+<!ELEMENT failover_ref %objref.content;>
+<!ATTLIST failover_ref %objref.attr;>
+<!ELEMENT ldlm_ref %objref.content;>
+<!ATTLIST ldlm_ref %objref.attr;>
+
+
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
+<output omit-xml-declaration="yes" />
+<strip-space elements="*"/>
+<param name="config">fs=lustre</param>
+<variable name="basedn">config=<value-of select="$config"/>,fs=lustre</variable>
+
+<template match="lustre">
+dn: <value-of select="$basedn"/>
+uuid: CONFIG_UUID
+objectClass: LUSTRECONFIG
+config: <value-of select="$config"/>
+<text>
+</text><apply-templates/>
+</template>
+
+<template match="node">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: NODE
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/>
+networkRef: <value-of select="network/@uuid"/>
+<for-each select="profile_ref">
+profileRef: <value-of select="@uuidref"/>
+</for-each>
+<text>
+</text><apply-templates/>
+</template>
+
+<template match="profile">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: PROFILE
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/><apply-templates/>
+<text>
+</text>
+</template>
+
+<template match="network">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: NETWORK
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/>
+nettype: <value-of select="@nettype"/>
+nid: <value-of select="nid"/>
+<if test="port">
+port: <value-of select="port"/>
+</if>
+<text>
+</text>
+</template>
+
+<template match="mds">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: MDS
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/>
+<if test="fstype">
+fstype: <value-of select="fstype"/>
+</if>
+<if test="autoformat">
+autoformat: <value-of select="autoformat"/>
+</if>
+<if test="devpath">
+devpath: <value-of select="devpath"/>
+</if>
+<if test="devsize">
+devsize: <value-of select="devsize"/>
+</if>
+networkRef: <value-of select="network_ref/@uuidref"/>
+nodeRef: <value-of select="node_ref/@uuidref"/>
+<text>
+</text>
+</template>
+
+<template match="lov">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: LOV
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/>
+mdsRef: <value-of select="mds_ref/@uuidref"/>
+stripepattern: <value-of select="@stripepattern"/>
+stripesize: <value-of select="@stripesize"/>
+stripecount: <value-of select="@stripecount"/><apply-templates/>
+<text>
+</text>
+</template>
+
+
+<template match="lovconfig">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: LOVCONFIG
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/><apply-templates/>
+<text>
+</text>
+</template>
+
+<template match="obd">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: OBD
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/>
+activetarget: <value-of select="activetarget"/>
+obdtype: <value-of select="@obdtype"/>
+<if test="fstype">
+fstype: <value-of select="fstype"/>
+</if>
+<if test="autoformat">
+autoformat: <value-of select="autoformat"/>
+</if>
+<if test="devpath">
+devpath: <value-of select="devpath"/>
+</if>
+<if test="devsize">
+devsize: <value-of select="devsize"/>
+</if>
+<text>
+</text>
+</template>
+
+<template match="ost">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: OST
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/><apply-templates/>
+<text>
+</text>
+</template>
+
+<template match="mountpoint">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: MOUNTPOINT
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/><apply-templates/>
+<text>
+</text>
+</template>
+
+<template match="echoclient">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: ECHOCLIENT
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/><apply-templates/>
+<text>
+</text>
+</template>
+
+<template match="ldlm">
+dn: uuid=<value-of select="@uuid"/>,<value-of select="$basedn"/>
+objectClass: LDLM
+lustreName: <value-of select="@name"/>
+uuid: <value-of select="@uuid"/>
+<text>
+</text>
+</template>
+
+
+<template match="ldlm_ref">
+ldlmRef: <value-of select="@uuidref"/>
+</template>
+
+<template match="obd_ref">
+obdRef: <value-of select="@uuidref"/>
+</template>
+
+<template match="ost_ref">
+ostRef: <value-of select="@uuidref"/>
+</template>
+
+
+<template match="network_ref">
+networkRef: <value-of select="@uuidref"/>
+</template>
+
+<template match="mds_ref">
+mdsRef: <value-of select="@uuidref"/>
+</template>
+
+<template match="mountpoint_ref">
+mountpointRef: <value-of select="@uuidref"/>
+</template>
+
+<template match="echoclient_ref">
+echoclientRef: <value-of select="@uuidref"/>
+</template>
+
+<template match="lov_ref">
+lovRef: <value-of select="@uuidref"/>
+</template>
+
+<template match="path">
+path: <value-of select="."/>
+</template>
+
+</stylesheet>
+
+