2.11.3.2 CT_CtxNode

Target namespace: http://schemas.microsoft.com/ink/2010/main

Referenced by: context

The CT_CtxNode defines an Ink context node and its properties. A context node is a logical collection of Ink traces. When Ink is drawn by the user, the Ink traces are analyzed and organized into a hierarchy of context nodes. Each context node has a type (specified by the type attribute) and can have zero or more child content nodes. For example, a writingRegion content node can have one or more paragraph content nodes. In addition, context nodes can have relational links to each other. For example, if a word is underlined, the context node representing the ink word and the context node representing the underline are linked.

For example, the following figure shows ink that is analyzed as shown in the following code example.

Example ink text

Figure 30: Example ink text

 <context type="writingRegion"/>
   ...
   <context type="paragraph"/>
     ...
     <context type="line"/>
       ...
       <context type="inkWord"/>
       ...
       <context type="inkWord">
          <destinationLink direction="with" ref="id of inkDrawing below"/>
       </context>
  
 <context type="inkDrawing" semanticType="underline">
   <sourceLink direction="with" ref="id of inkWord above"/>
 </context>

Child Elements:

property: A CT_Property element that specifies a user-defined binary data property.

sourceLink: A CT_CtxLink element that specifies a semantic link from another content node.

destinationLink: A CT_CtxLink element that specifies a semantic link to another context node.

Attributes:

id: An ST_Guid attribute that specifies a GUID for this context node.

type: An ST_CtxNodeType attribute that specifies the type of this context node.

rotatedBoundingBox: An ST_Points attribute that specifies a rectangular region encompassed by this context node. Applies to all context node types.

alignmentLevel: An xsd:int attribute ([XMLSCHEMA2/2] section 3.3.17) that specifies the alignment level of a paragraph type context node. If this attribute is present, the value of the type attribute MUST be set to "paragraph".

contentType: An xsd:int attribute ([XMLSCHEMA2/2] section 3.3.17) that specifies the content type of the context node. If this attribute is present, the value of the type attribute MUST be set to "paragraph".

ascender: An ST_Points attribute that specifies the ascender. If this attribute is present, the value of the type attribute MUST be set to "line".

descender: An ST_Points attribute that specifies the descender. If this attribute is present, the value of the type attribute MUST be set to "line".

baseline: An ST_Points attribute that specifies the baseline of a line. If this attribute is present, the value of the type attribute MUST be set to "line".

midline: An ST_Points attribute that specifies the midline of a line. If this attribute is present, the value of the type attribute MUST be set to "line".

customRecognizerId: An ST_Guid attribute that specifies the globally unique identifier (GUID) that represents the custom ink recognizer.  If this attribute is present, the value of the type attribute MUST be set to "customRecognizer".

mathML: An xsd:string attribute ([XMLSCHEMA2/2] section 3.2.1) that specifies a string of Math Markup Language ([MathML2.0]). If this attribute is present, the value of the type attribute MUST be set to "mathEquation".

mathStruct: An xsd:string attribute ([XMLSCHEMA2/2] section 3.2.1) that specifies a math struct. If this attribute is present, the value of the type attribute MUST be set to "mathStruct".

mathSymbol: An xsd:string attribute ([XMLSCHEMA2/2] section 3.2.1) that specifies a math symbol. If this attribute is present, the value of the type attribute MUST be set to "mathSymbol".

beginModifierType: An xsd:string attribute ([XMLSCHEMA2/2] section 3.2.1) that specifies the beginning modifier type. If this attribute is present, the value of the type attribute MUST be set to "inkDrawing", "nonInkDrawing", or "mixedDrawing".

endModifierType: An xsd:string attribute ([XMLSCHEMA2/2] section 3.2.1) that specifies the ending modifier type. If this attribute is present, the value of the type attribute MUST be set to "inkDrawing", "nonInkDrawing", or "mixedDrawing".

rotationAngle: An xsd:int attribute ([XMLSCHEMA2/2] section 3.3.17) that specifies the rotation angle of the drawing, in degrees. If this attribute is present, the value of the type attribute MUST be set to "inkDrawing", "nonInkDrawing", or "mixedDrawing".

hotPoints: An ST_Points attribute that specifies coordinates of the hot points of the drawing. If this attribute is present, the value of the type attribute MUST be set to "inkDrawing", "nonInkDrawing", or "mixedDrawing".

centroid: An ST_Point attribute that specifies the center point of the drawing. If this attribute is present, the value of the type attribute MUST be set to "inkDrawing", "nonInkDrawing", or "mixedDrawing".

semanticType: An ST_SemanticType attribute that specifies the semantic type of the writing region or drawing. If this attribute is present, the value of the type attribute MUST be set to "writingRegion", "inkDrawing", "nonInkDrawing", or "mixedDrawing".

shapeName: An xsd:string attribute ([XMLSCHEMA2/2] section 3.2.1) that specifies the shape name. If this attribute is present, the value of the type attribute MUST be set to "inkDrawing", "nonInkDrawing", or "mixedDrawing".

shapeGeometry: An ST_Points attribute that specifies coordinates of the line segments of a drawing. If this attribute is present, the value of the type attribute MUST be set to "nonInkDrawing".

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

 <xsd:complexType name="CT_CtxNode">
   <xsd:sequence>
     <xsd:element name="property" type="CT_Property" minOccurs="0" maxOccurs="unbounded"/>
     <xsd:element name="sourceLink" type="CT_CtxLink" minOccurs="0" maxOccurs="unbounded"/>
     <xsd:element name="destinationLink" type="CT_CtxLink" minOccurs="0" maxOccurs="unbounded"/>
   </xsd:sequence>
   <xsd:attribute name="id" type="ST_Guid" use="optional"/>
   <xsd:attribute name="type" type="ST_CtxNodeType" use="required"/>
   <xsd:attribute name="rotatedBoundingBox" type="ST_Points" use="optional"/>
   <xsd:attribute name="alignmentLevel" type="xsd:int" use="optional" default="0"/>
   <xsd:attribute name="contentType" type="xsd:int" use="optional" default="0"/>
   <xsd:attribute name="ascender" type="ST_Points" use="optional" default="0,0"/>
   <xsd:attribute name="descender" type="ST_Points" use="optional" default="0,0"/>
   <xsd:attribute name="baseline" type="ST_Points" use="optional" default="0,0"/>
   <xsd:attribute name="midline" type="ST_Points" use="optional" default="0,0"/>
   <xsd:attribute name="customRecognizerId" type="ST_Guid" use="optional"/>
   <xsd:attribute name="mathML" type="xsd:string" use="optional" default=""/>
   <xsd:attribute name="mathStruct" type="xsd:string" use="optional" default=""/>
   <xsd:attribute name="mathSymbol" type="xsd:string" use="optional" default=""/>
   <xsd:attribute name="beginModifierType" type="xsd:string" use="optional" default=""/>
   <xsd:attribute name="endModifierType" type="xsd:string" use="optional" default=""/>
   <xsd:attribute name="rotationAngle" type="xsd:int" use="optional" default="0"/>
   <xsd:attribute name="hotPoints" type="ST_Points" use="optional"/>
   <xsd:attribute name="centroid" type="ST_Point" use="optional"/>
   <xsd:attribute name="semanticType" type="ST_SemanticType" use="optional" default="none"/>
   <xsd:attribute name="shapeName" type="xsd:string" use="optional" default=""/>
   <xsd:attribute name="shapeGeometry" type="ST_Points" use="optional"/>
 </xsd:complexType>

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