2.1.29 RowType Property

One or more Property elements are used to describe the structure of a RowType element.

The following is an example of a RowType element with two Property elements.

 <ReturnType>
     <CollectionType>
         <RowType>
                   <Property Name="C" Type="Customer"/>
                   <Property Name="Orders" Type="Collection(Order)"/>
         </RowType>
     </CollectionType>
 </ReturnType>

The following is an example of a collection of RowType elements that contains a collection of RowType elements.

 <ReturnType>
     <CollectionType>
         <RowType>
             <Property Name="Customer" Type="Customer"/>
             <Property Name="Orders">
                 <CollectionType>
                     <RowType>
                         <Property Name="OrderNo" Type="Int32"/>
                         <Property Name="OrderDate" Type="Date"/>
                     <RowType>
                 <CollectionType>
             </Property>
         </RowType>
     </CollectionType>
 </ReturnType>

The following rules apply to the Property elements of a RowType element:

  • Property MUST have a Name attribute defined that is of type SimpleIdentifier. The Name attribute represents the name of this Property.

  • The type of a property that belongs to a RowType MUST be one of the following:

  • Property defines a type either as an attribute or as a child element.

  • Property cannot contain both an attribute and a child element defining the type of the Property element.

  • Property can define facets if the type is a scalar type.

  • Property can contain any number of AnnotationAttribute attributes. The full names of the AnnotationAttribute attributes cannot collide.

  • Property can contain any number of AnnotationElement elements.

  • AnnotationElement elements are last in the sequence of child elements of Property.

Graphic representation in table format of the rules that apply to the Property element of a given RowType element.

All child elements are to appear in the order indicated. For all child elements within a given choice, the child elements can be ordered arbitrarily.