2.1.4.15 TypeDescriptorTypeNameString

Target namespace: http://schemas.microsoft.com/windows/2007/BusinessDataCatalog

Referenced by: TypeDescriptor, DefaultValue

A simple type used to specify implementation-specific identifier for data type of the data structure that the TypeDescriptor represents. The value of this element is mapped to a data type using an implementation-specific Business Logic Module<39> associated with the Parameter which contains this TypeDescriptor. The Business Logic Module<40> that can perform this mapping MUST be specified as follows.

  1. If the Parameter that contains this TypeDescriptor contains a Property with name "TypeReflectorTypeName" and type "System.String", the Business Logic Module<41> specified by the implementation-specific identifier represented by the string Property value MUST be used.

  2. If previous condition is not met, and if the LobSystem that contains the Entity containing the Method of the Parameter that contains this TypeDescriptor has section type specified as "Custom", and if the Business Logic Module<42> associated with the LobSystem for the purposes of communicating with the corresponding line-of-business (LOB) system, which is identified by the value of the LobSystem contained in the Property with name "SystemUtilityTypeName" and type "System.String", specifies a Business Logic Module<43> for the purpose of mapping value of typeName element to a data type, the specified Business Logic Module<44> MUST be used.

  3. If previous conditions are not met, implementation-specific Business Logic Module<45> MUST be used to perform the mapping. In this case, the value of the implementation-specific identifier for the data type of the data structure that the TypeDescriptor represents MUST be in the format specified by the following ABNF.

     Value = TypeName *1(%x2C BusinessLogicModule)
     BusinessLogicModule = FullAssemblyName / LobSystemName
     FullAssemblyName = LibraryIdentifier %x2C VersionProperty %x2C CultureProperty %x2C PublicKeyTokenProperty
    

Where LibraryIdentifier, VersionProperty, PublicKeyTokenProperty, and CultureProperty rules are as specified in [MS-NRTP] section 2.2.1.3.

The TypeName rule is the name of the type that conforms to the [ECMA-335] specification and can be understood by the .NET Framework. The format is as specified in [MS-NRTP] section 2.2.1.2.

The LobSystemName rule is the name of the LobSystem which contains the Entity that contains the Method which contains the Parameter which contains the TypeDescriptor.

The occurrence of BusinessLogicModule in the preceding ABNF MUST yield to an LobSystemName, if the represented data type resides in the Business Logic Module<46> associated with the LobSystem which contains the TypeDescriptor, otherwise the occurrence of BusinessLogicModule MUST be a FullAssemblyName. The values specified in the following table do not require a BusinessLogicModule to be specified.

Value

Description

System.String

A string of Unicode text.

System.Int16

A number ranging from negative 32768 to positive 32767 inclusive.

System.Int32

A number ranging from negative 2,147,483,648 to positive 2,147,483,647 inclusive.

System.Int64

A number ranging from negative 9,223,372,036,854,775,808 to positive 9,223,372,036,854,775,807 inclusive.

System.UInt16

A number ranging from 0 to 65535 inclusive.

System.UInt32

A number ranging from 0 to 4,294,967,295 inclusive.

System.UInt64

A number ranging from 0 to 18,446,744,073,709,551,615 inclusive.

System.DateTime

A date and time ranging from 12:00:00 midnight, January 1, 1 Anno Domini (Common Era) to 11:59:59 P.M., December 31, 9999 Anno Domini (Common Era) inclusive, in resolution of 100 nanoseconds.

System.TimeSpan

A duration ranging from negative 10675199 days 2 hours 48 minutes 5 seconds  477 milliseconds 580 microseconds 800 nanoseconds to positive 10675199 days 2 hours 48 minutes 5 seconds  477 milliseconds 580 microseconds 700 nanoseconds inclusive, in resolution of 100 nanoseconds.

System.Single

A single precision number ranging from negative 3.402823e38 to 3.402823e38 inclusive.

System.Double

A double precision number ranging from negative 1.79769313486232e308 to positive 1.79769313486232e308 inclusive as well as positive zero, negative zero, positive infinity, negative infinity and not-a-number (NaN).

System.Decimal

A number ranging from negative 79,228,162,514,264,337,593,543,950,335 to positive 79,228,162,514,264,337,593,543,950,335 inclusive.

System.Char

A Unicode character.

System.Byte

A number ranging from 0 to 255 inclusive.

System.SByte

A number ranging from negative 128 to positive 127 inclusive.

System.Guid

A GUID.

System.Boolean

A bit.

System.Uri

An URL.

The following W3C XML Schema ([XMLSCHEMA1/2] section 2.1) fragment specifies the contents of this simple type.

 <xs:simpleType name="TypeDescriptorTypeNameString">
   <xs:restriction base="xs:string">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
   </xs:restriction>
 </xs:simpleType>

See section 5.1 for the full W3C XML Schema ([XMLSCHEMA1/2] section 2.1).