Base Data Type:
this is important properties of schema, but most of the cases we have set as blank.
Its by default value is set as Blank, indicating that the data type of this Record, Field Element, or Field Attribute node is not derived from another data type.
Data Structure Type:
It specifies a name for the data type of the selected node so that it can be used elsewhere.
Data Structure type only applied on Record in Schema. It is used for below three kind of activity:
- Select an existing global complex type to be associated with the selected Record node, thereby converting the inbuilt complex type for this Record node to a global complex type.
- Specify a name for the complex type associated with the selected Record node, thereby converting its unnamed complex type to a global complex type
- Reference an existing global Record node.
Difference between Base Data Type and Data Structure Type:
Base Data Type as inheriting from a base class which you can then modify further. It will retain the name you define and can then be used as the Data Structure Type of other Elements.
Data Structure Type is similar to creating an instance of a Type. So, if you have your ‘Type’ Elements defined at the root, you can then set child Elements elsewhere to these types, complex or simple, using Data Structure Type.
It specifies how the complex type associated with the selected node is derived from the data type specified by the Base Data Type property.
More info available at: https://msdn.microsoft.com/en-us/library/aa560465.aspx
Simple and complex types in XML Schema:
In XML Schema, there is a basic difference between complex types which allow elements in their content and may carry attributes, and simple types which cannot have element content and cannot carry attributes.