SmartTag class
SmartTag class
This element specifies the presence of a smart tag around one or more inline structures (runs, images, fields,etc.) within a paragraph. To learn more, visit the Structured Document Tags or Content Control documentation article.
Remarks
Smart tags is a kind of custom XML markup. Smart tags provide a facility for embedding customer-defined semantics into the document via the ability to provide a basic namespace/name for a run or set of runs within a document.
SmartTag can be a child of a Paragraph or another SmartTag node.
The complete list of child nodes that can occur inside a smart tag consists of BookmarkStart, BookmarkEnd, FieldStart, FieldSeparator, FieldEnd, FormField, Comment, Footnote, Run, SpecialChar, Shape, GroupShape, CommentRangeStart, CommentRangeEnd, SmartTag.
Inheritance: SmartTag → CompositeNode → Node
Constructors
Name | Description |
---|---|
SmartTag(doc) | Initializes a new instance of the SmartTag class. |
Properties
Name | Description |
---|---|
count | Gets the number of immediate children of this node. (Inherited from CompositeNode) |
customNodeId | Specifies custom node identifier. (Inherited from Node) |
document | Gets the document to which this node belongs. (Inherited from Node) |
element | Specifies the name of the smart tag within the document. |
firstChild | Gets the first child of the node. (Inherited from CompositeNode) |
hasChildNodes | Returns true if this node has any child nodes.(Inherited from CompositeNode) |
isComposite | Returns true if this node can contain other nodes.(Inherited from Node) |
lastChild | Gets the last child of the node. (Inherited from CompositeNode) |
nextSibling | Gets the node immediately following this node. (Inherited from Node) |
nodeType | Returns NodeType.SmartTag. |
parentNode | Gets the immediate parent of this node. (Inherited from Node) |
previousSibling | Gets the node immediately preceding this node. (Inherited from Node) |
properties | A collection of the smart tag properties. |
range | Returns a Range object that represents the portion of a document that is contained in this node. (Inherited from Node) |
uri | Specifies the namespace URI of the smart tag. |
Methods
Name | Description |
---|---|
accept(visitor) | Accepts a visitor. |
acceptEnd(visitor) | Accepts a visitor for visiting the end of the SmartTag. |
acceptStart(visitor) | Accepts a visitor for visiting the start of the SmartTag. |
appendChild(newChild) | Adds the specified node to the end of the list of child nodes for this node. (Inherited from CompositeNode) |
asBody() | Cast node to Body. (Inherited from Node) |
asBookmarkEnd() | Cast node to BookmarkEnd. (Inherited from Node) |
asBookmarkStart() | Cast node to BookmarkStart. (Inherited from Node) |
asBuildingBlock() | Cast node to BuildingBlock. (Inherited from Node) |
asCell() | Cast node to Cell. (Inherited from Node) |
asComment() | Cast node to Comment. (Inherited from Node) |
asCommentRangeEnd() | Cast node to CommentRangeEnd. (Inherited from Node) |
asCommentRangeStart() | Cast node to CommentRangeStart. (Inherited from Node) |
asCompositeNode() | Cast node to CompositeNode. (Inherited from Node) |
asDocument() | Cast node to Node.document. (Inherited from Node) |
asEditableRangeEnd() | Cast node to EditableRangeEnd. (Inherited from Node) |
asEditableRangeStart() | Cast node to EditableRangeStart. (Inherited from Node) |
asFieldEnd() | Cast node to FieldEnd. (Inherited from Node) |
asFieldSeparator() | Cast node to FieldSeparator. (Inherited from Node) |
asFieldStart() | Cast node to FieldStart. (Inherited from Node) |
asFootnote() | Cast node to Footnote. (Inherited from Node) |
asFormField() | Cast node to FormField. (Inherited from Node) |
asGlossaryDocument() | Cast node to GlossaryDocument. (Inherited from Node) |
asGroupShape() | Cast node to GroupShape. (Inherited from Node) |
asHeaderFooter() | Cast node to HeaderFooter. (Inherited from Node) |
asOfficeMath() | Cast node to OfficeMath. (Inherited from Node) |
asParagraph() | Cast node to Paragraph. (Inherited from Node) |
asRow() | Cast node to Row. (Inherited from Node) |
asRun() | Cast node to Run. (Inherited from Node) |
asSection() | Cast node to Section. (Inherited from Node) |
asShape() | Cast node to Shape. (Inherited from Node) |
asSmartTag() | Cast node to SmartTag. (Inherited from Node) |
asSpecialChar() | Cast node to SpecialChar. (Inherited from Node) |
asStructuredDocumentTag() | Cast node to StructuredDocumentTag. (Inherited from Node) |
asStructuredDocumentTagRangeEnd() | Cast node to StructuredDocumentTagRangeEnd. (Inherited from Node) |
asStructuredDocumentTagRangeStart() | Cast node to StructuredDocumentTagRangeStart. (Inherited from Node) |
asSubDocument() | Cast node to SubDocument. (Inherited from Node) |
asTable() | Cast node to Table. (Inherited from Node) |
clone(isCloneChildren) | Creates a duplicate of the node. (Inherited from Node) |
getAncestor(ancestorType) | Gets the first ancestor of the specified NodeType. (Inherited from Node) |
getBuildingBlock(index, isDeep) | (Inherited from CompositeNode) |
getChild(nodeType, index, isDeep) | Returns an Nth child node that matches the specified type. (Inherited from CompositeNode) |
getChildNodes(nodeType, isDeep) | Returns a live collection of child nodes that match the specified type. (Inherited from CompositeNode) |
getComment(index, isDeep) | (Inherited from CompositeNode) |
getEditableRangeStart(index, isDeep) | (Inherited from CompositeNode) |
getFootnote(index, isDeep) | (Inherited from CompositeNode) |
getGroupShape(index, isDeep) | (Inherited from CompositeNode) |
getOfficeMath(index, isDeep) | (Inherited from CompositeNode) |
getParagraph(index, isDeep) | (Inherited from CompositeNode) |
getRun(index, isDeep) | (Inherited from CompositeNode) |
getSdt(index, isDeep) | (Inherited from CompositeNode) |
getSdtRangeEnd(index, isDeep) | (Inherited from CompositeNode) |
getSdtRangeStart(index, isDeep) | (Inherited from CompositeNode) |
getShape(index, isDeep) | (Inherited from CompositeNode) |
getSmartTag(index, isDeep) | (Inherited from CompositeNode) |
getTable(index, isDeep) | (Inherited from CompositeNode) |
getText() | Gets the text of this node and of all its children. (Inherited from Node) |
indexOf(child) | Returns the index of the specified child node in the child node array. (Inherited from CompositeNode) |
insertAfter(newChild, refChild) | Inserts the specified node immediately after the specified reference node. (Inherited from CompositeNode) |
insertBefore(newChild, refChild) | Inserts the specified node immediately before the specified reference node. (Inherited from CompositeNode) |
nextPreOrder(rootNode) | Gets next node according to the pre-order tree traversal algorithm. (Inherited from Node) |
nodeTypeToString(nodeType) | A utility method that converts a node type enum value into a user friendly string. (Inherited from Node) |
prependChild(newChild) | Adds the specified node to the beginning of the list of child nodes for this node. (Inherited from CompositeNode) |
previousPreOrder(rootNode) | Gets the previous node according to the pre-order tree traversal algorithm. (Inherited from Node) |
referenceEquals(other) | (Inherited from Node) |
remove() | Removes itself from the parent. (Inherited from Node) |
removeAllChildren() | Removes all the child nodes of the current node. (Inherited from CompositeNode) |
removeChild(oldChild) | Removes the specified child node. (Inherited from CompositeNode) |
removeSmartTags() | Removes all SmartTag descendant nodes of the current node. (Inherited from CompositeNode) |
selectNodes(xpath) | Selects a list of nodes matching the XPath expression. (Inherited from CompositeNode) |
selectSingleNode(xpath) | Selects the first Node that matches the XPath expression. (Inherited from CompositeNode) |
toString(saveFormat) | Exports the content of the node into a string in the specified format. (Inherited from Node) |
toString(saveOptions) | Exports the content of the node into a string using the specified save options. (Inherited from Node) |
Examples
Shows how to create smart tags.
test('Create', () => {
let doc = new aw.Document();
// A smart tag appears in a document with Microsoft Word recognizes a part of its text as some form of data,
// such as a name, date, or address, and converts it to a hyperlink that displays a purple dotted underline.
let smartTag = new aw.Markup.SmartTag(doc);
// Smart tags are composite nodes that contain their recognized text in its entirety.
// Add contents to this smart tag manually.
smartTag.appendChild(new aw.Run(doc, "May 29, 2019"));
// Microsoft Word may recognize the above contents as being a date.
// Smart tags use the "Element" property to reflect the type of data they contain.
smartTag.element = "date";
// Some smart tag types process their contents further into custom XML properties.
smartTag.properties.add(new aw.Markup.CustomXmlProperty("Day", '', "29"));
smartTag.properties.add(new aw.Markup.CustomXmlProperty("Month", '', "5"));
smartTag.properties.add(new aw.Markup.CustomXmlProperty("Year", '', "2019"));
// Set the smart tag's URI to the default value.
smartTag.uri = "urn:schemas-microsoft-com:office:smarttags";
doc.firstSection.body.firstParagraph.appendChild(smartTag);
doc.firstSection.body.firstParagraph.appendChild(new aw.Run(doc, " is a date. "));
// Create another smart tag for a stock ticker.
smartTag = new aw.Markup.SmartTag(doc);
smartTag.element = "stockticker";
smartTag.uri = "urn:schemas-microsoft-com:office:smarttags";
smartTag.appendChild(new aw.Run(doc, "MSFT"));
doc.firstSection.body.firstParagraph.appendChild(smartTag);
doc.firstSection.body.firstParagraph.appendChild(new aw.Run(doc, " is a stock ticker."));
// Print all the smart tags in our document using a document visitor.
doc.accept(new SmartTagPrinter());
// Older versions of Microsoft Word support smart tags.
doc.save(base.artifactsDir + "SmartTag.create.doc");
// Use the "RemoveSmartTags" method to remove all smart tags from a document.
expect(doc.getChildNodes(aw.NodeType.SmartTag, true).Count).toEqual(2);
doc.removeSmartTags();
expect(doc.getChildNodes(aw.NodeType.SmartTag, true).Count).toEqual(0);
});
/// <summary>
/// Prints visited smart tags and their contents.
/// </summary>
private class SmartTagPrinter : DocumentVisitor
{
/// <summary>
/// Called when a SmartTag node is encountered in the document.
/// </summary>
public override VisitorAction VisitSmartTagStart(SmartTag smartTag)
{
console.log(`Smart tag type: ${smartTag.element}`);
return aw.VisitorAction.Continue;
}
/// <summary>
/// Called when the visiting of a SmartTag node is ended.
/// </summary>
public override VisitorAction VisitSmartTagEnd(SmartTag smartTag)
{
console.log(`\tContents: \"${smartTag.toString(aw.SaveFormat.Text)}\"`);
if (smartTag.properties.count == 0)
{
console.log("\tContains no properties");
}
else
{
Console.write("\tProperties: ");
string.at(] properties = new string[smartTag.properties.count);
int index = 0;
for (let cxp of smartTag.properties)
properties.at(index++) = `\"${cxp.name}\" = \"${cxp.value}\"`;
console.log(string.Join(", ", properties));
}
return aw.VisitorAction.Continue;
}
}
See Also
- module Aspose.Words.Markup
- class CompositeNode