public class XmlMapping
Example:
Shows how to set XML mappings for CustomXmlParts.Document doc = new Document(); // Construct an XML part that contains data and add it to the document's CustomXmlPart collection String xmlPartId = UUID.randomUUID().toString(); String xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>"; CustomXmlPart xmlPart = doc.getCustomXmlParts().add(xmlPartId, xmlPartContent); System.out.println(xmlPart.getData()); // Create a StructuredDocumentTag that will display the contents of our CustomXmlPart in the document StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK); // If we set a mapping for our StructuredDocumentTag, // it will only display a part of the CustomXmlPart that the XPath points to // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[2]", "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); Assert.assertTrue(sdt.getXmlMapping().isMapped()); Assert.assertEquals(sdt.getXmlMapping().getCustomXmlPart(), xmlPart); Assert.assertEquals(sdt.getXmlMapping().getXPath(), "/root[1]/text[2]"); Assert.assertEquals(sdt.getXmlMapping().getPrefixMappings(), "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); // Add the StructuredDocumentTag to the document to display the content from our CustomXmlPart doc.getFirstSection().getBody().appendChild(sdt); doc.save(getArtifactsDir() + "StructuredDocumentTag.XmlMapping.docx");
Property Getters/Setters Summary | ||
---|---|---|
CustomXmlPart | getCustomXmlPart() | |
Returns the custom XML data part to which the parent structured document tag is mapped.
|
||
boolean | isMapped() | |
Returns true if the parent structured document tag is successfully mapped to XML data.
|
||
java.lang.String | getPrefixMappings() | |
Returns XML namespace prefix mappings to evaluate the |
||
java.lang.String | getStoreItemId() | |
Specifies the custom XML data identifier for the custom XML data part which
shall be used to evaluate the |
||
java.lang.String | getXPath() | |
Returns the XPath expression, which is evaluated to find the custom XML node
that is mapped to the parent structured document tag.
|
Method Summary | ||
---|---|---|
void | delete() | |
Deletes mapping of the parent structured document to XML data.
|
||
boolean | setMapping(CustomXmlPart customXmlPart, java.lang.String xPath, java.lang.String prefixMapping) | |
Sets a mapping between the parent structured document tag and an XML node of a custom XML data part.
|
public CustomXmlPart getCustomXmlPart()
Example:
Shows how to set XML mappings for CustomXmlParts.Document doc = new Document(); // Construct an XML part that contains data and add it to the document's CustomXmlPart collection String xmlPartId = UUID.randomUUID().toString(); String xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>"; CustomXmlPart xmlPart = doc.getCustomXmlParts().add(xmlPartId, xmlPartContent); System.out.println(xmlPart.getData()); // Create a StructuredDocumentTag that will display the contents of our CustomXmlPart in the document StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK); // If we set a mapping for our StructuredDocumentTag, // it will only display a part of the CustomXmlPart that the XPath points to // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[2]", "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); Assert.assertTrue(sdt.getXmlMapping().isMapped()); Assert.assertEquals(sdt.getXmlMapping().getCustomXmlPart(), xmlPart); Assert.assertEquals(sdt.getXmlMapping().getXPath(), "/root[1]/text[2]"); Assert.assertEquals(sdt.getXmlMapping().getPrefixMappings(), "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); // Add the StructuredDocumentTag to the document to display the content from our CustomXmlPart doc.getFirstSection().getBody().appendChild(sdt); doc.save(getArtifactsDir() + "StructuredDocumentTag.XmlMapping.docx");
public boolean isMapped()
Example:
Shows how to set XML mappings for CustomXmlParts.Document doc = new Document(); // Construct an XML part that contains data and add it to the document's CustomXmlPart collection String xmlPartId = UUID.randomUUID().toString(); String xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>"; CustomXmlPart xmlPart = doc.getCustomXmlParts().add(xmlPartId, xmlPartContent); System.out.println(xmlPart.getData()); // Create a StructuredDocumentTag that will display the contents of our CustomXmlPart in the document StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK); // If we set a mapping for our StructuredDocumentTag, // it will only display a part of the CustomXmlPart that the XPath points to // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[2]", "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); Assert.assertTrue(sdt.getXmlMapping().isMapped()); Assert.assertEquals(sdt.getXmlMapping().getCustomXmlPart(), xmlPart); Assert.assertEquals(sdt.getXmlMapping().getXPath(), "/root[1]/text[2]"); Assert.assertEquals(sdt.getXmlMapping().getPrefixMappings(), "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); // Add the StructuredDocumentTag to the document to display the content from our CustomXmlPart doc.getFirstSection().getBody().appendChild(sdt); doc.save(getArtifactsDir() + "StructuredDocumentTag.XmlMapping.docx");
public java.lang.String getPrefixMappings()
Example:
Shows how to set XML mappings for CustomXmlParts.Document doc = new Document(); // Construct an XML part that contains data and add it to the document's CustomXmlPart collection String xmlPartId = UUID.randomUUID().toString(); String xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>"; CustomXmlPart xmlPart = doc.getCustomXmlParts().add(xmlPartId, xmlPartContent); System.out.println(xmlPart.getData()); // Create a StructuredDocumentTag that will display the contents of our CustomXmlPart in the document StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK); // If we set a mapping for our StructuredDocumentTag, // it will only display a part of the CustomXmlPart that the XPath points to // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[2]", "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); Assert.assertTrue(sdt.getXmlMapping().isMapped()); Assert.assertEquals(sdt.getXmlMapping().getCustomXmlPart(), xmlPart); Assert.assertEquals(sdt.getXmlMapping().getXPath(), "/root[1]/text[2]"); Assert.assertEquals(sdt.getXmlMapping().getPrefixMappings(), "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); // Add the StructuredDocumentTag to the document to display the content from our CustomXmlPart doc.getFirstSection().getBody().appendChild(sdt); doc.save(getArtifactsDir() + "StructuredDocumentTag.XmlMapping.docx");
public java.lang.String getStoreItemId()
Example:
Shows how to get special id of your xml part.Document doc = new Document(getMyDir() + "Custom XML part in structured document tag.docx"); // Structured document tags have IDs in the form of Guids StructuredDocumentTag tag = (StructuredDocumentTag) doc.getChild(NodeType.STRUCTURED_DOCUMENT_TAG, 0, true); Assert.assertEquals("{F3029283-4FF8-4DD2-9F31-395F19ACEE85}", tag.getXmlMapping().getStoreItemId());
public java.lang.String getXPath()
Example:
Shows how to set XML mappings for CustomXmlParts.Document doc = new Document(); // Construct an XML part that contains data and add it to the document's CustomXmlPart collection String xmlPartId = UUID.randomUUID().toString(); String xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>"; CustomXmlPart xmlPart = doc.getCustomXmlParts().add(xmlPartId, xmlPartContent); System.out.println(xmlPart.getData()); // Create a StructuredDocumentTag that will display the contents of our CustomXmlPart in the document StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK); // If we set a mapping for our StructuredDocumentTag, // it will only display a part of the CustomXmlPart that the XPath points to // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[2]", "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); Assert.assertTrue(sdt.getXmlMapping().isMapped()); Assert.assertEquals(sdt.getXmlMapping().getCustomXmlPart(), xmlPart); Assert.assertEquals(sdt.getXmlMapping().getXPath(), "/root[1]/text[2]"); Assert.assertEquals(sdt.getXmlMapping().getPrefixMappings(), "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); // Add the StructuredDocumentTag to the document to display the content from our CustomXmlPart doc.getFirstSection().getBody().appendChild(sdt); doc.save(getArtifactsDir() + "StructuredDocumentTag.XmlMapping.docx");
public void delete()
Example:
Shows how to set XML mappings for CustomXmlParts.Document doc = new Document(); // Construct an XML part that contains data and add it to the document's CustomXmlPart collection String xmlPartId = UUID.randomUUID().toString(); String xmlPartContent = "<root><text>Text element #1</text><text>Text element #2</text></root>"; CustomXmlPart xmlPart = doc.getCustomXmlParts().add(xmlPartId, xmlPartContent); System.out.println(xmlPart.getData()); // Create a StructuredDocumentTag that will display the contents of our CustomXmlPart in the document StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK); // If we set a mapping for our StructuredDocumentTag, // it will only display a part of the CustomXmlPart that the XPath points to // This XPath will point to the contents second "<text>" element of the first "<root>" element of our CustomXmlPart sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[2]", "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); Assert.assertTrue(sdt.getXmlMapping().isMapped()); Assert.assertEquals(sdt.getXmlMapping().getCustomXmlPart(), xmlPart); Assert.assertEquals(sdt.getXmlMapping().getXPath(), "/root[1]/text[2]"); Assert.assertEquals(sdt.getXmlMapping().getPrefixMappings(), "xmlns:ns='http://www.w3.org/2001/XMLSchema'"); // Add the StructuredDocumentTag to the document to display the content from our CustomXmlPart doc.getFirstSection().getBody().appendChild(sdt); doc.save(getArtifactsDir() + "StructuredDocumentTag.XmlMapping.docx");
public boolean setMapping(CustomXmlPart customXmlPart, java.lang.String xPath, java.lang.String prefixMapping) throws java.lang.Exception
customXmlPart
- A custom XML data part to map to.xPath
- An XPath expression to find the XML node.prefixMapping
- XML namespace prefix mappings to evaluate the XPath.Example:
Shows how to create structured document tag with a custom XML data.Document doc = new Document(); // Construct an XML part that contains data and add it to the document's collection // Once the "Developer" tab in Mircosoft Word is enabled, // we can find elements from this collection as well as a couple defaults in the "XML Mapping Pane" String xmlPartId = UUID.randomUUID().toString(); String xmlPartContent = "<root><text>Hello, World!</text></root>"; CustomXmlPart xmlPart = doc.getCustomXmlParts().add(xmlPartId, xmlPartContent); // The data we entered resides in these variables Assert.assertEquals(xmlPart.getData(), xmlPartContent.getBytes()); Assert.assertEquals(xmlPart.getId(), xmlPartId); // XML parts can be referenced by collection index or GUID Assert.assertEquals(doc.getCustomXmlParts().get(0), xmlPart); Assert.assertEquals(doc.getCustomXmlParts().getById(xmlPartId), xmlPart); // Once the part is created, we can add XML schema associations like this xmlPart.getSchemas().add("http://www.w3.org/2001/XMLSchema"); // We can also clone parts and insert them into the collection directly CustomXmlPart xmlPartClone = xmlPart.deepClone(); xmlPartClone.setId(UUID.randomUUID().toString()); doc.getCustomXmlParts().add(xmlPartClone); Assert.assertEquals(doc.getCustomXmlParts().getCount(), 2); // Iterate through collection with an enumerator and print the contents of each part Iterator<CustomXmlPart> enumerator = doc.getCustomXmlParts().iterator(); int index = 0; while (enumerator.hasNext()) { CustomXmlPart customXmlPart = enumerator.next(); System.out.println(MessageFormat.format("XML part index {0}, ID: {1}", index, customXmlPart.getId())); System.out.println(MessageFormat.format("\tContent: {0}", customXmlPart.getData())); index++; } // XML parts can be removed by index doc.getCustomXmlParts().removeAt(1); Assert.assertEquals(doc.getCustomXmlParts().getCount(), 1); // The XML part collection itself can be cloned also CustomXmlPartCollection customXmlParts = doc.getCustomXmlParts().deepClone(); // And all elements can be cleared like this customXmlParts.clear(); // Create a StructuredDocumentTag that will display the contents of our part, // insert it into the document and save the document StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PLAIN_TEXT, MarkupLevel.BLOCK); sdt.getXmlMapping().setMapping(xmlPart, "/root[1]/text[1]", ""); doc.getFirstSection().getBody().appendChild(sdt); doc.save(getArtifactsDir() + "StructuredDocumentTag.CustomXml.docx");