1. Home
  2. Docs
  3. Chapter 23. Document Production
  4. 5. Writing Doc. Composer element templates
  5. Text and Property

Text and Property

Download PDF

When you want to output some text, you either use a <Text> or a <Property>.

You use <Text> when you want to output specific words, sentences or paragraphs, such as “Here is a list of business activities:”. The following example show the use of <Text> in a template.

<Text>Here is a list of elements in my project:</Text>
<ParagraphBreak/>
<IterationBlock allLevel="true" >
    <Property property="name"/>
    <Text> : </Text>
    <Property property="modelType"/>
    <ParagraphBreak/>
</IterationBlock>

The first <Text> in the example above outputs a sentence “Here is a list of elements in my project: “.

The second <Text> outputs a colon between the name and type of elements. Note that the space before and after the colon will get output into the document.

Here is the outcome of the example above.

Here is a list of elements in my project:
Place Order : UseCase
PaymentController : Class
Cancel Order : BPTask

The following table lists the available attributes of <Text>.

Name Description Required?
isBold : boolean Set the text to bold. Optional
isItalic : boolean Set the text italic. Optional
isUnderline : boolean Underline text. Optional
fontFamily : string Specify the name of font to apply to the text. Optional
fontSize : integer Set the font size. Optional
foreColor : color Set the color of text. Optional
alignment : string
{left | center | right}
Set the alignment of text. Optional
style : string Set the name of style. You can add and edit style in Doc. Composer. Optional
numberingLevel : short Determine the Numbering Level if the text is showing as a number or bullet list. Optional
margin The top, right, bottom, left margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>.

Example: margin=”0, 0, 0, 0″

Optional
margin-top : integer The top margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
margin-right : integer The right margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
margin-bottom : integer The bottom margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
margin-left : integer The left margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
hyperlink : boolean Specify whether the text is a hyperlink or not. If true, the text will be linkable. Optional
keepWithNext : boolean Make sure the text will be shown in same page with next item. (Used for WORD document only) Optional
href : string The text will be linkable and the target will be the URL specified by this attribute. When this attribute is specified, @hyperlink will be ignored.

Example: <Text href=”https://www.visual-paradigm.com”>Visual Paradigm</Text>

Optional

You may have noticed the use of <Property> in the example above. <Property> is another way to output text. You use <Property> when you want to output text by extracting the data from a property of querying diagram or element. The following example show the use of <Property> in a template.

<IterationBlock allLevel="true" >
    <Text>Name: </Text>
    <Property property="name"/>
    <ParagraphBreak/>
    <Property property="description"/>
    <ParagraphBreak/>
    <ParagraphBreak/>
</IterationBlock>

The first <Property> outputs the name of the querying element, while the second <Property> outputs the description.

Here is the outcome of the example above.

Name: Place Order
The process to check out a shopping cart and finish the payment.

Name: PaymentController
A controller class that handles the payment logic.

Name: Cancel Order
The process to delete an order made within the last 7 days.

The following table lists the available attributes of <Property>.

Name Description Required?
property : string The property to query.

Note that if you want to query the name of wireframe widgets, use realName as value instead of name.

Required
isIgnoreHTMLFontSize : boolean Ignore the font size on the HTML text. Optional
isIgnoreHTMLFontFamiliy : boolean Ignore the font selection of the HTML text Optional
forcePlainText : boolean Force HTML text to show as plain text by removing formatting, if any. Optional
default : string The text to show when the value of property has not ever been specified. Optional
isBold : boolean Set the text to bold. Optional
isItalic : boolean Set the text italic. Optional
isUnderline : boolean Underline text. Optional
fontFamily : string Specify the name of font to apply to the text. Optional
fontSize : integer Set the font size. Optional
foreColor : color Set the color of text. Optional
alignment : string
{left | center | right}
Set the alignment of text. Optional
style : string Set the name of style. You can add and edit style in Doc. Composer. Optional
numberingLevel : short Determine the Numbering Level if the text is showing as a number or bullet list. Optional
margin The top, right, bottom, left margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>.

Example: margin=”0, 0, 0, 0″

Optional
margin-top : integer The top margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
margin-right : integer The right margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
margin-bottom : integer The bottom margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
margin-left : integer The left margin of a text. Note that only the first set of margin will be considered within a paragraph. The rest will be ignored. In Doc. Composer, a paragraph is ended by a <ParagraphBreak/>. Optional
hyperlink : boolean Specify whether the text is a hyperlink or not. If true, the text will be linkable. Optional
keepWithNext : boolean Make sure the text will be shown in same page with next item. (Used for WORD document only) Optional
dateFormatString : string Date value property will be formatted with the format pattern specified before displaying. Formatting will only occur when the property is a date value (e.g. pmLastModified).

e.g. @dateFormatString =”yyyy-MM-dd”

Optional
typeWithFullyQualify : boolean Output the fully qualified type of querying element. For example: true to output com.vp.MyClass instead of MyClass Optional
returnTypeWithFullyQualify : boolean Output the fully qualified return type of querying element. For example: true to output com.vp.MyClass instead of MyClass Optional
anchorMark : boolean Acts like the target of an anchor in HTML. By including anchorMark=”true” to the Property element through which the name of a diagram or model element is generated, the other occurrences of that diagram / model element within the document will be clickable in the generated Word document, which helps bring the reader to the anchor position upon clicking. Optional

Understanding Dynamic Heading Style

When you want to set a text produced by a <Text> or a <Property> to be a heading, add and specify the style attribute in the <Text> or <Property>.

There are two ways of specifying a heading – Static and Dynamic. The following example shows the static way of specifying heading:

<Text style="Heading 1">Text in heading 1</Text>
<Property property="name" style="Heading 2"/>

The <Text> in the example above outputs a sentence “Text in heading 1”, with Heading 1 as style. The <Property> outputs the name of a model element, with Heading 2 as style.

The static way of specifying heading requires you to provide the style name in the template.

In contrast to the static way, here is an example that shows the dynamic way of specifying heading:

<Text style="@heading+">Text in heading 1</Text>
<Property property="name" style="@heading+"/>

In the example above, we do not provide the name of the heading style. Instead, we use @heading to indicate the need to assign heading style, @heading+ to indicate an increase of heading style level. By using @heading, the style Heading 1…N will be used in the output document.

Here is the outcome of the example above.

Text in heading 1
Place Order Use Case

The sentence Text in heading 1 has Heading 1 applied, while the name Place Order Use Case has Heading 2 applied.

More about Heading Increment

By appending + to @heading, the leveling of heading style will be increased. For example, if the previous heading is a Heading 1, the use of @heading+ will output a heading in Heading 2.

The use of + in @heading is optional though. If you want to add a heading that has the same heading level as the previous heading, skip + to reuse the style used by the previous heading.