Structural Elements

The structural elements which come together to create a color transform, or rather, the complex type CT_ColorTransform, are as follows:

  • CT_CTName

  • CT_CTDescription

  • CT_CTCategory

  • CT_CTCategories

  • ST_ClrAppMethod

  • ST_HueDir

  • CT_Colors

  • CT_CTStyleLabel

  • CT_CTVersion

  • CT_ColorTransformHeader

  • CT_ColorTransformHeaderLst

The complex types CT_CTName (name), CT_CTDescription (description), CT_CTCategory (category), and CT_CTCategories (list of categories) work together to name, describe and categorize the particular color transform. These types are mirrored elsewhere throughout DrawingML in the different subjects in order to perform the same tasks of naming, describing, and categorizing.

The name consists simply of two strings, one of a name for the color transform, which is required, and an optional language tag. The language allows someone to specify a language for a given title. It is possible to specify multiple titles that are language dependant. The description also has the optional language attribute as in the name, along with a second required string attribute which holds the actual description. The usage of this is exactly the same as within CT_CTName. CT_CTName and CT_CTDescription are defined in the following way:

<xsd:complexType name="CT_CTName">
  <xsd:attribute name="lang type="xsd:string" use="optional" />
  <xsd:attribute name="val" type="xsd:string" use="required" />
</xsd:complexType>
<xsd:complexType name="CT_CTDescription">
  <xsd:attribute name="lang" type="xsd:string" use="optional" />
  <xsd:attribute name="val" type="xsd:string" use="required" />
</xsd:complexType>

The category and categories complex types , CT_CTCategory and CT_CTCategories, respectively, define how the color transform is categorized within the user interface of the application. The category contains a name, or type, along with a priority that defines the ordering of the color transform. The lower the priority, the earlier in the category it will display. If there is a tie, the unique id associated with the color transform will decide the order alphabetically. CT_CTCategories is simply a list of CT_CTCategory. The two complex types are defined as follows:

<xsd:complexType name="CT_CTCategory">
  <xsd:attribute name="type" type="xsd:anyURI" use="required" />
  <xsd:attribute name="pri" type="xsd:unsignedInt" use="required"/>
</xsd:complexType>
<xsd:complexType name="T_CTCategories">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="cat" type="CT_CTCategory" minOccurs="0" 
      maxOccurs="unbounded" />
  </xsd:sequence>
</xsd:complexType>