The complexType element defining an object type can have an optional GN4-specific attribute ‘access’ that specifies the access class of the object type. If there is no such attribute the access class defaults to ‘normal’.
Object defined without access attribute
<xs:complexType name="object">
<xs:attribute name="id" type="xs:ID" />
<xs:attribute name="name" type="tName" />
</xs:complexType>
Object defined with access attribute
<xs:element name="testSpecial">
<xs:complexType gs:access="special">
<xs:complexContent>
<xs:extension base="object">
<xs:attribute
name="location"
type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
defines a ‘testSpecial’ object type having ‘special’ access class.
IMPORTANT: Note that just declaring a complex type will NOT create a corresponding object type – this will be the case only when the complex type is used as the base for the complex type of one or more elements. Here ‘base’ is intended as either directly or indirectly, e.g. if the element E has a complex type based on T1 that in turn is based on T2 there will be object types for both T1 and T2.