// dummy URI, loading done through input stream URI uri = URI.createURI("data.bpmn"); ResourceSet resourceSet = new ResourceSetImpl(); Resource resource = resourceSet.createResource(uri, "org.eclipse.bpmn2.content-type.xml"); resource.load(contentStream, null);
<bpmndi:BPMNShape id="BPMNShape_StartEvent_1" bpmnElement="data.bpmn#StartEvent_1"> <dc:Bounds height="36.0" width="36.0" x="162.0" y="182.0"/> <bpmndi:BPMNLabel id="BPMNLabel_1" labelStyle="data.bpmn#BPMNLabelStyle_1"> <dc:Bounds height="15.0" width="68.0" x="146.0" y="218.0"/> </bpmndi:BPMNLabel> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_StartEvent_1" bpmnElement="StartEvent_1"> <dc:Bounds height="36.0" width="36.0" x="162.0" y="182.0"/> <bpmndi:BPMNLabel id="BPMNLabel_1" labelStyle="BPMNLabelStyle_1"> <dc:Bounds height="15.0" width="68.0" x="146.0" y="218.0"/> </bpmndi:BPMNLabel> </bpmndi:BPMNShape>
// previously storing the database input stream to dataFile, file looks OK InputStream in = new FileInputStream(dataFile); ResourceSet resourceSet = new ResourceSetImpl(); URI modelUri = URI.createFileURI("d:/temp/data.bpmn"); Resource resource = resourceSet.createResource(modelUri, "org.eclipse.bpmn2.content-type.xml"); resource.load(in, null); in.close(); OutputStream outputStream = new FileOutputStream(dataFile); resource.save(outputStream, null); outputStream.close(); // now the file contains #ID as references
public Resource createResource(URI uri) { Bpmn2ResourceImpl result = new Bpmn2ResourceImpl(uri); ExtendedMetaData extendedMetadata = new XmlExtendedMetadata(); result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetadata); result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetadata); result.getDefaultSaveOptions().put(XMLResource.OPTION_SAVE_TYPE_INFORMATION, new OnlyContainmentTypeInfo()); result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE); result.getDefaultSaveOptions().put(XMLResource.OPTION_ELEMENT_HANDLER, new ElementHandlerImpl(true)); result.getDefaultSaveOptions().put(XMLResource.OPTION_ENCODING, "UTF-8"); return result; }
ResourceSet resourceSet = new ResourceSetImpl(); XMLResource resource = (XMLResource) resourceSet.createResource(modelUri, "org.eclipse.bpmn2.content-type.xml"); XMLResource.URIHandler uriHandler = new URIHandlerImpl() { @Override public URI deresolve(URI uri) { // make sure references are stored without # URI prefix return URI.createURI(uri.fragment()); } }; resource.getDefaultSaveOptions().put(XMLResource.OPTION_URI_HANDLER, uriHandler); resource.load(inputStream, null);