Next: 8 Package toc Up: RichDoc Framework XML Format Specification Previous: 6 Package math
Defines box in certain coordinate space, in terms of the anchor point, width, and height. The anchor point refers to the top-left corner of the rectangle, unless otherwise specified. For instance, for box element, the anchor point may be specified by the anchor style value.
![]() |
Figure 3 Box Geometry (anchor point refers to top-left corner) |
A drawingContainer that applies specified transformation to its contained drawingElements. The transformation is specified as a series of transformOperations.
Parents: drawingContainer
Content: transformOperation+ (drawingElement | transform)+
Parents: transform
Specifies translation transforming operation. All objects are transformed using transformation matrix
![]() |
(1) |
Parents: transform
Specifies rotate transforming operation. All objects are transformed using transformation matrix
![]() |
(2) |
Parents: transform
Specifies scale transforming operation. All objects are transformed using transformation matrix
![]() |
(3) |
Parents: transform
Specifies shear transforming operation. All objects are transformed using transformation matrix
![]() |
(4) |
Parents: transform
Any element that may contain drawingElements.
Content: (drawingElement | transform)*
Drawing element is contentElement that may appear as a child of drawingContainer.
Parents: drawingContainer
Attributes: class id userId language
Content: style? indexEntryRef?
A block element that serves as a container for drawingElements.
Parents: blockContainer
Attributes: class id userId language
Content: style? indexEntryRef? animation? (drawingElement | transform)*
Parents: drawing
Content: rule*
Parents: animation
Simple Content: xsd:string
Shape is closed or open stroke comprising segments defined using shapeSegment elements. The segments may be straight, quadratic, Bézier or arc.
![]() |
Figure 4 Segmented Shape |
Parents: drawingContainer
Attributes: closed filled class id userId language
Content: style? indexEntryRef? start shapeSegment+
Defines starting point of the shape. The type attribute controls behavior of the shape when user manipulates the starting point.
Parents: shape
Attributes: x y type(shapeSegment)
Class of elements defining segments of a shape. Each segment has an attribute type that controls the behavior of the shape when user manipulates the point at the end of this segment.
Parents: shape
Attributes: type(shapeSegment)
Straight shape segment, i.e. straight line from the current point to the point [x, y], see Figure 5.
![]() |
Figure 5 Straight Segment |
Parents: shape
Attributes: x y type(shapeSegment)
Quadratic shape segment, i.e. quadratic curve from the current point to the point [x, y], having [cx, cy] as a control point, see Figure 6.
![]() |
Figure 6 Quadratic Segment |
Parents: shape
Attributes: x y cx cy type(shapeSegment)
Bézier shape segment, i.e. Bézier curve from the current point to the point [x, y], having [c1x, c1y] and [c2x, c2y] as a control points, see Figure 7.
![]() |
Figure 7 Bézier Segment |
Parents: shape
Attributes: x y c1x c1y c2x c2y type(shapeSegment)
Arc shape segment, i.e. arc segment from the current point to the point [x, y], having [mx, my] as a control point, see Figure 8.
![]() |
Figure 8 Arc Segment |
Parents: shape
Attributes: x y my mx type(shapeSegment)
drawingElement representing a box with or without content. The general box shape is rectangular, but it may be changed by style to round or oval. Note that the geometry child is required, the omission of it is a deprecated construct, so in the schema it is listed as optional.
Parents: drawingContainer
Attributes: x y theta autoLayout width(box) class id userId language
Content: style? indexEntryRef? geometry? page?
Parents: drawingContainer
Attributes: type(link) x1 y1 x2 y2 from to class id userId language
Content: style? indexEntryRef? ((rectangularPoint | bezier))?
Specification of parameters of a Bézier link.
Parents: link
Attributes: length angle baseAngle
Specifies a hint for rectangular or corner link. For corner link, there are two options how to draw it. The one is chosen for which the real link corner is closer to the hint point, see Figure 9a. In the case of rectangular link, consisting of three segments, the rectangularPoint determines either x or y coordinate of the middle segment of the link. There are also two options, from which the one is chosen for which the first node point is closer to the rectangularPoint, see Figure 9b and c. In the figure, orange point denotes the rectangularPoint, while the two green points denote the two alternatives, from which the closer is taken.
![]() |
Figure 9 How rectangularPoint influences link shape |
Parents: link
Parents: drawingContainer
Attributes: x y aspect class id userId language height(bitmap) width(bitmap) data scale
Content: style? indexEntryRef? sourceInfo?
Identifies the source from which this bitmap has been imported. It might be used e.g. for updating the bitmap when source changes, or for re-rasterizing the bitmap in another resolution.
Parents: bitmap
Attributes: type(sourceInfo) name(sourceInfo) id data width(sourceInfo) height(sourceInfo)
Parents: drawingContainer
Attributes: class id userId language
Content: style? indexEntryRef? geometry table
Linear dimension drawingElement. The elements from and to define endpoints of the dimension arrow. The elements extension1 and extension2 define the length of the extension line. The extension line is always perpendicular to the dimension arrow. If the extension value is positive, the extension extends in the direction at right angle clockwise from the from–to vector. If the value is negative, it extends in counter-clockwise direction. Alternatively, the extension point may be defined using snap child element, in which case it is associated with some point hosted by another object. In this case, the from or to points may be modified to maintain the perpendicular property of the extension line, but they may be moved only along the main dimension line. The text of the dimension is defined using the page element. The position of the page is defined using the alignment element.
![]() |
Figure 10 Linear Dimension |
Parents: drawingContainer
Attributes: class id userId language
Content: style? indexEntryRef? from to extension1 extension2 alignment(linDim) page
Starting point of linDim drawingElement.
Parents: linDim
Ending point of linDim drawingElement.
Parents: linDim
Specifies the position of the linDim's annotation.
Parents: linDim
Attributes: type(linDimAlignment)
Content: position
Parents: alignment(linDim)
Defines the direction and length of the first extension point of linDim, if the value(style) is present. Alternatively, the extension point may be defined using nested snap point.
![]() |
Figure 11 Beginning of Linear Dimension |
Parents: linDim
Attributes: value(dimExtension)
Content: snap?
Defines the direction and length of the second extension point of linDim, if the value(style) is present. Alternatively, the extension point may be defined using nested snap point.
![]() |
Figure 12 Beginning of Linear Dimension |
Parents: linDim
Attributes: value(dimExtension)
Content: snap?
Defines that extension point of linDim is associated with certain point of other object. The object is identified by its identifier using the id attribute, and its point is identified by the type(snap) attribute.
Parents: extension1 extension2
Attributes: id type(snap)
Custom box is a special box whose content is drawn by user-supplied code. The code is supplied in the form of a bytecode of a class that is expected to be of type org.ksmsa.richDoc.drawing.view.CustomBoxCodeBase and override the method draw(double width, double height). The element should provide the bytecode in the compiled child element, and may optionally provide the fragment of the source code in the child element source.
Parents: drawingContainer
Attributes: class id userId language
Content: style? indexEntryRef? geometry source? compiled
The compiled part of the enclosing customBox, in the form of BASE64-encoded bytecode.
Parents: customBox
Simple Content: xsd:string
Contains the fragment of the source code that is used to compile the bytecode of the enclosing customBox. The fragment is the body of the method draw(double width, double height) of the class extending org.ksmsa.richDoc.drawing.view.CustomBoxCodeBase.
Parents: customBox
Simple Content: xsd:string
Attributes: height(bitmap) width(bitmap) data scale class id userId language
Content: style? indexEntryRef? sourceInfo?
Controls the behavior of shape when user drags one of its manipulation points.
![]() |
Figure 13 (a) corner, (b) straight, (c) smooth, (d) auto |
Turns this box to auto-layout mode. In this mode, all boxes that are reachable from this box via links, are positioned out automatically.
Specifies the object associated with the starting point of the enclosing link.
Distance of the link's control point from its node point, relative to the length of the link, see Figure 14. If the link length is zero (i.e. the link is a loop), the length is relative to the value of 1.
![]() |
Figure 14 Bézier Link |
Specifies the angle of rotation of Bézier link around its collapsed point, see Figure 15.
![]() |
Figure 15 Bézier Link |
Specifies the angle of the control point relative from the link vector for Bézier link, see Figure 16. The angle is relative to the angle of link's base, from-to vector. If the link base vector has zero length, i.e. the link is a loop, the angle is relative to the baseAngle attribute.
![]() |
Figure 16 Bézier Link |
Specifies the aspect ratio of a bitmap, if not equal to 100%. The height of a bitmap is equal to width(bitmap) * aspect. If the value is 1, it may be omitted.
Specifies length and direction of linDim's extension lines, extension1 and extension2.
Defines which point within particular drawingElement should be associated with enclosing extension point of linDim. The following values are legal, depending on the type of the associated drawingElement referenced by snap's id attribute:
Type of the source used to initialize the enclosing bitmap. The valid values are:
For the bitmap imported from EPS, specifies the desired width of the image in pts (as specified by the LaTeX \epsfxsize macro)
For the bitmap imported from EPS, specifies the desired height of the image in pts (as specified by the LaTeX \epsfysize macro)
Next: 8 Package toc Up: RichDoc Framework XML Format Specification Previous: 6 Package math