If you choose to preview a portlet’s tabular data output as XML, EP uses the following XML definition to format the data:
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by XMLSPY 5 Enterprise Edition, Installed Multi-User (Web Services Architecture WG) -->
<!--W3C Schema generated by XMLSPY v5 rel. 3 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="ContentDoc">
<xs:complexType>
<xs:sequence>
<xs:element ref="ApplicationDef" minOccurs="0"/>
<xs:element ref="CGIParameters" minOccurs="0"/>
<xs:element ref="Element"/>
<xs:any processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ApplicationDef">
<xs:complexType>
<xs:sequence>
<xs:element ref="PostProcessingDef" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CGIParameters">
<xs:complexType>
<xs:sequence>
<xs:element ref="Url" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Element">
<xs:complexType>
<xs:sequence>
<xs:element ref="Record" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Field">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="SubField" minOccurs="0"
maxOccurs="unbounded"/>
<xs:any processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="op_label" type="xs:string"/>
<xs:attribute name="op_position" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="SubField">
<xs:complexType>
<xs:sequence>
<xs:any processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="href" type="xs:string" use="required"/>
<xs:attribute name="index" type="xs:boolean"/>
</xs:complexType>
<xs:element name="SubField">
</xs:element>
<xs:element name="Record">
<xs:complexType>
<xs:sequence>
<xs:element ref="Field" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PostProcessingDef">
<xs:complexType>
<xs:sequence>
<xs:element ref="Field" maxOccurs="unbounded"/>
<xs:any processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="apply2xml" type="xs:boolean"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="order" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Url">
<xs:complexType>
<xs:sequence>
<xs:element ref="Parameter" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Parameter">
<xs:complexType>
<xs:sequence>
<xs:any processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="auto_fill_adapter" type="xs:string"/>
<xs:attribute name="auto_fill_key" type="xs:string"/>
<xs:attribute name="cgi_mapped" type="xs:boolean"/>
<xs:attribute name="default_value" type="xs:string"/>
<xs:attribute name="display_name" type="xs:string"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="required" type="xs:boolean"/>
<xs:attribute name="sequence" type="xs:boolean"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="variable" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:schema>