Express Server's catalog configuration schema is included here for developer reference.
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema jxb:version="2.0"
targetNamespace="http://www.lizardtech.com"
xmlns="http://www.lizardtech.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wms="http://www.opengis.net/wms"
elementFormDefault="qualified"
version="1.0.0" >
<xsd:import namespace="http://www.opengis.net/wms" schemaLocation="capabilities_1_3_0.xsd"/>
<xsd:element name="CatalogConfig">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Globals" type="Globals" minOccurs="0" maxOccurs="1" />
<xsd:element name="Catalog" type="Catalog" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="MultiCatalog" type="MultiCatalog" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Globals">
<xsd:sequence>
<xsd:element name="BufferMergeRule" type="BufferMergeRule" minOccurs="0" />
<xsd:element name="Watermark" type="xsd:string" minOccurs="0" />
<xsd:element name="SizeConstraint" type="SizeConstraint" minOccurs="0" />
<xsd:element name="DynamicRange" type="DynamicRange" minOccurs="0" />
<xsd:element name="Gradient" type="xsd:string" minOccurs="0" />
<xsd:element name="AvgPointsPerPixel" type="xsd:float" minOccurs="0" />
<xsd:element name="VoidFillWindow" type="xsd:unsignedInt" minOccurs="0" />
<xsd:element name="ThumbSpec" type="ThumbSpec" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="CatalogProps" type="xsd:string" minOccurs="0" />
<xsd:element name="ItemProps" type="xsd:string" minOccurs="0" />
<xsd:element name="JPIPRoot" type="xsd:string" minOccurs="0" />
<xsd:element name="ResponseHostPort" type="xsd:string" minOccurs="0" />
<xsd:element name="MaxWaveletSourceMP" type="xsd:unsignedInt" minOccurs="0" />
<xsd:element name="BrowseIndexOnly" type="xsd:boolean" minOccurs="0" />
<xsd:element name="AllowItemDownload" type="xsd:boolean" minOccurs="0" />
<xsd:element name="WMSCapabilitiesMime" type="xsd:string" minOccurs="0" />
<xsd:element name="Property" type="Property" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="wms:Layer" minOccurs="0" />
<xsd:element ref="wms:Service" minOccurs="0" />
<xsd:element name="MaxPointCloud" type="xsd:unsignedLong" maxOccurs="1" minOccurs="0"/>
<xsd:element name="OutputFormats" type="Formats" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Catalog">
<xsd:sequence>
<xsd:element name="Path" type="xsd:string" minOccurs="0" />
<xsd:element name="BufferMergeRule" type="BufferMergeRule" minOccurs="0" />
<xsd:element name="Watermark" type="xsd:string" minOccurs="0" />
<xsd:element name="SizeConstraint" type="SizeConstraint" minOccurs="0" />
<xsd:element name="DynamicRange" type="DynamicRange" minOccurs="0" />
<xsd:element name="Gradient" type="xsd:string" minOccurs="0" />
<xsd:element name="AvgPointsPerPixel" type="xsd:float" minOccurs="0" />
<xsd:element name="VoidFillWindow" type="xsd:unsignedInt" minOccurs="0" />
<xsd:element name="ElevationRange" type="ElevationRange" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ThumbSpec" type="ThumbSpec" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Bands" type="xsd:string" minOccurs="0" />
<xsd:element name="MaxWaveletSourceMP" type="xsd:unsignedInt" minOccurs="0" />
<xsd:element name="BrowseIndexOnly" type="xsd:boolean" minOccurs="0" />
<xsd:element name="AllowItemDownload" type="xsd:boolean" minOccurs="0" />
<xsd:element name="SpatialIndex" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CRS" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="Param" type="Param" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="classID" type="xsd:string" use="required" />
<xsd:attribute name="fallBackToBlackNodata" type="xsd:boolean" />
</xsd:complexType>
</xsd:element>
<xsd:element name="Property" type="Property" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="wms:Layer" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="enabled" type="xsd:boolean" default="true" use="optional" />
</xsd:complexType>
<xsd:complexType name="MultiCatalog">
<xsd:sequence>
<xsd:element name="SubCatalog" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
<xsd:element name="BufferMergeRule" type="BufferMergeRule" minOccurs="0" />
<xsd:element name="Watermark" type="xsd:string" minOccurs="0"/>
<xsd:element name="SizeConstraint" type="SizeConstraint" minOccurs="0"/>
<xsd:element name="ThumbSpec" type="ThumbSpec" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Property" type="Property" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="wms:Layer" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
</xsd:complexType>
<xsd:complexType name="Property">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="lang" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="ThumbSpec">
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="height" type="xsd:unsignedInt" use="required" />
<xsd:attribute name="width" type="xsd:unsignedInt" use="required" />
<xsd:attribute name="gradient" type="xsd:string" use="optional" />
</xsd:complexType>
<xsd:complexType name="BufferMergeRule">
<xsd:attribute name="fuzziness" default="3" type="xsd:unsignedInt" />
<xsd:attribute name="method" default="pixelNonTransparentFuzzy">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="pixelNonTransparent" />
<xsd:enumeration value="pixelNonTransparentFuzzy" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="SizeConstraint">
<xsd:attribute name="height" type="xsd:unsignedInt" use="required" />
<xsd:attribute name="width" type="xsd:unsignedInt" use="required" />
</xsd:complexType>
<xsd:complexType name="DynamicRange">
<xsd:attribute name="minimum" type="xsd:float" use="required" />
<xsd:attribute name="maximum" type="xsd:float" use="required" />
</xsd:complexType>
<xsd:complexType name="Param">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" type="xsd:string" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="ElevationRange">
<xsd:attribute name="minimum" type="xsd:float" use="optional"/>
<xsd:attribute name="maximum" type="xsd:float" use="optional"/>
</xsd:complexType>
<xsd:complexType name="Formats">
<xsd:sequence>
<xsd:element name="Format" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Unknown"/>
<xsd:enumeration value="jpeg"/>
<xsd:enumeration value="png"/>
<xsd:enumeration value="tif"/>
<xsd:enumeration value="sidlidar"/>
<xsd:enumeration value="sidraster"/>
<xsd:enumeration value="las"/>
<xsd:enumeration value="laz"/>
<xsd:enumeration value="bmp"/>
<xsd:enumeration value="gif"/>
<xsd:enumeration value="jp2"/>
<xsd:enumeration value="nitf"/>
<xsd:enumeration value="pdf"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>