2.2.4.1.3.1.1 Nested Rowsets
A special case of the row element is where it is part of a nested rowset, and therefore contains the contents of an additional row. This can be thought of as "a row within a row." However, the nested row does not contain a new Row element. The limit of nesting is to one level. That is, nested rows cannot contain additional nested rows.
The nested rowset does not have a specific XSD. That is because the XSD definition for the xmla-rs:row element is xsd:any, and therefore, the concept of nested rows is included within the XSD definition of xmla-rs:row. However, the restriction is imposed that nesting is limited to one level.
This concept is best illustrated by a fragment of an example. The following code shows the return result of one row from the DISCOVER_SCHEMA_ROWSETS Discover.
-
<row> <SchemaName>DBSCHEMA_CATALOGS</SchemaName> <SchemaGuid>C8B52211-5CF3-11CE-ADE5-00AA0044773D</SchemaGuid> <Restrictions> <Name>CATALOG_NAME</Name> <Type>xsd:string</Type> </Restrictions> <RestrictionsMask>1</RestrictionsMask> </row>
Note that the Restrictions column of the above row contains a nested row within it. The nested row itself contains two elements, Name and Type. If a return result of xmla-rs:root contains a rowset with nested rows, this is reflected in the Schema element of the particular xmla-rs:rowset return result.