public static void addProperties(CustomXmlDataStoragePart customXmlDataStoragePart) throws InvalidFormatException { CustomXmlDataStoragePropertiesPart part = new CustomXmlDataStoragePropertiesPart(); org.docx4j.customXmlProperties.ObjectFactory of = new org.docx4j.customXmlProperties.ObjectFactory(); DatastoreItem dsi = of.createDatastoreItem(); String newItemId = "{" + UUID.randomUUID().toString() + "}"; dsi.setItemID(newItemId); part.setJaxbElement(dsi); customXmlDataStoragePart.addTargetPart(part); }
protected static boolean IsPartToRemove(Part part, String xpathStorageItemId) { boolean ret = false; RelationshipsPart relationshipsPart = part.getRelationshipsPart(); List<Relationship> relationshipsList = ((relationshipsPart != null) && (relationshipsPart.getRelationships() != null) ? relationshipsPart.getRelationships().getRelationship() : null); CustomXmlDataStoragePropertiesPart propertiesPart = null; DatastoreItem datastoreItem = null; if ((relationshipsList != null) && (!relationshipsList.isEmpty())) { for (Relationship relationship : relationshipsList) { if (Namespaces.CUSTOM_XML_DATA_STORAGE_PROPERTIES.equals(relationship.getType())) { propertiesPart = (CustomXmlDataStoragePropertiesPart) relationshipsPart.getPart(relationship); break; } } } if (propertiesPart != null) { datastoreItem = propertiesPart.getJaxbElement(); } if (datastoreItem != null) { if ((datastoreItem.getItemID() != null) && (datastoreItem.getItemID().length() > 0)) { ret = datastoreItem.getItemID().equals(xpathStorageItemId); } if ((!ret) && (datastoreItem.getSchemaRefs() != null) && (datastoreItem.getSchemaRefs().getSchemaRef() != null) && (!datastoreItem.getSchemaRefs().getSchemaRef().isEmpty())) { for (SchemaRef ref : datastoreItem.getSchemaRefs().getSchemaRef()) { if (PART_TO_REMOVE_SCHEMA_TYPES.contains(ref.getUri())) { ret = true; break; } } } } return ret; }