/** * The low level code to insert {@code <c:chart>} tag into * {@code<a:graphicData>}. * * Here is the schema (ECMA-376): * <pre> * {@code * <complexType name="CT_GraphicalObjectData"> * <sequence> * <any minOccurs="0" maxOccurs="unbounded" processContents="strict"/> * </sequence> * <attribute name="uri" type="xsd:token"/> * </complexType> * } * </pre> */ private void appendChartElement(CTGraphicalObjectData data, String id) { String r_namespaceUri = STRelationshipId.type.getName().getNamespaceURI(); String c_namespaceUri = XSSFDrawing.NAMESPACE_C; XmlCursor cursor = data.newCursor(); cursor.toNextToken(); cursor.beginElement(new QName(c_namespaceUri, "chart", "c")); cursor.insertAttributeWithValue(new QName(r_namespaceUri, "id", "r"), id); cursor.dispose(); data.setUri(c_namespaceUri); }
XmlCursor cur = spTree.newCursor(); try { for (boolean b=cur.toFirstChild();b;b=cur.toNextSibling()) { XmlObject ch = cur.getObject(); if(ch instanceof CTShape){ cur.push(); if (cur.toChild(PackageNamespaces.MARKUP_COMPATIBILITY, "Choice") && cur.toFirstChild()) { try { CTGroupShape grp = CTGroupShape.Factory.parse(cur.newXMLStreamReader()); shapes.addAll(buildShapes(grp, parent)); } catch (XmlException e) { cur.pop(); cur.dispose();
private boolean isStartToken(XmlCursor cursor, String string) { if (!cursor.isStart()) { return false; } QName qName = cursor.getName(); if (qName != null && qName.getLocalPart() != null && qName.getLocalPart().equals(string)) { return true; } return false; }
/** * Verifies that cursor is on the right position. * * @param cursor * @return true if the cursor is within a CTFtnEdn element. */ private boolean isCursorInFtn(XmlCursor cursor) { XmlCursor verify = cursor.newCursor(); verify.toParent(); if (verify.getObject() == this.ctFtnEdn) { return true; } return false; }
protected static void insertXChild(XmlObject root, XmlObject child) { XmlCursor rootCursor = root.newCursor(); rootCursor.toEndToken(); XmlCursor childCursor = child.newCursor(); childCursor.toNextToken(); childCursor.moveXml(rootCursor); childCursor.dispose(); rootCursor.dispose(); }
public XWPFTable insertNewTbl(final XmlCursor cursor) { if (isCursorInTableCell(cursor)) { String uri = CTTbl.type.getName().getNamespaceURI(); String localPart = "tbl"; cursor.beginElement(localPart, uri); cursor.toParent(); CTTbl t = (CTTbl) cursor.getObject(); XWPFTable newT = new XWPFTable(t, this); cursor.removeXmlContents(); XmlObject o = null; while (!(o instanceof CTTbl) && (cursor.toPrevSibling())) { o = cursor.getObject(); while (cursor2.toPrevSibling()) { o = cursor2.getObject(); if (o instanceof CTP || o instanceof CTTbl) i++; cursor2.dispose(); bodyElements.add(i, newT); cursor2 = t.newCursor(); cursor.toCursor(cursor2); cursor.toEndToken(); cursor2.dispose(); return newT;
private void copyChart(CTGraphicalObjectData objData, XSLFGraphicFrame srcShape) { XSLFSlide slide = (XSLFSlide) getSheet(); XSLFSheet src = srcShape.getSheet(); String xpath = "declare namespace c='http://schemas.openxmlformats.org/drawingml/2006/chart' c:chart"; XmlObject[] obj = objData.selectPath(xpath); if (obj != null && obj.length == 1) { XmlCursor c = obj[0].newCursor(); try { // duplicate chart with embedded workbook QName idQualifiedName = new QName("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "id"); String id = c.getAttributeText(idQualifiedName); XSLFChart srcChart = (XSLFChart) src.getRelationById(id); XSLFChart chartCopy = slide.getSlideShow().createChart(slide); chartCopy.importContent(srcChart); chartCopy.setWorkbook(srcChart.getWorkbook()); c.setAttributeText(idQualifiedName, slide.getRelationId(chartCopy)); } catch (InvalidFormatException e) { throw new POIXMLException(e); } catch (IOException e) { throw new POIXMLException(e); } c.dispose(); } }
private void processElement(SchemaParticle sp, XmlCursor xmlc, boolean mixed) { // cast as schema local element SchemaLocalElement element = (SchemaLocalElement) sp; /// ^ -> <elemenname></elem>^ if (_soapEnc) xmlc.insertElement(element.getName().getLocalPart()); // soap encoded? drop namespaces. else xmlc.insertElement(element.getName().getLocalPart(), element.getName().getNamespaceURI()); _nElements++; /// -> <elem>^</elem> xmlc.toPrevToken(); // -> <elem>stuff^</elem> createSampleForType(element.getType(), xmlc); // -> <elem>stuff</elem>^ xmlc.toNextToken(); }
/** * Add the xml:spaces="preserve" attribute if the string has leading or trailing white spaces * * @param xs the string to check */ static void preserveSpaces(XmlString xs) { String text = xs.getStringValue(); if (text != null && (text.startsWith(" ") || text.endsWith(" "))) { XmlCursor c = xs.newCursor(); c.toNextToken(); c.insertAttributeWithValue(new QName("http://www.w3.org/XML/1998/namespace", "space"), "preserve"); c.dispose(); } }
@Override public XSSFPictureData getPictureData() { XmlCursor cur = getOleObject().newCursor(); try { if (cur.toChild(XSSFRelation.NS_SPREADSHEETML, "objectPr")) { String blipId = cur.getAttributeText(new QName(PackageRelationshipTypes.CORE_PROPERTIES_ECMA376_NS, "id")); return (XSSFPictureData)getSheet().getRelationById(blipId); } return null; } finally { cur.dispose(); } }
private boolean hasOleLink(XmlObject shape) { QName uriName = new QName(null, "uri"); String xquery = "declare namespace a='" + XSSFRelation.NS_DRAWINGML + "' .//a:extLst/a:ext"; XmlCursor cur = shape.newCursor(); cur.selectPath(xquery); try { while (cur.toNextSelection()) { String uri = cur.getAttributeText(uriName); if ("{63B3BB69-23CF-44E3-9099-C40C66FF867C}".equals(uri)) { return true; } } } finally { cur.dispose(); } return false; }
XmlCursor cur = getCTWorksheet().getOleObjects().newCursor(); try { cur.selectPath(xquery); CTOleObject coo = null; while (cur.toNextSelection()) { String sId = cur.getAttributeText(new QName(null, "shapeId")); if (sId == null || Long.parseLong(sId) != shapeId) { continue; XmlObject xObj = cur.getObject(); if (xObj instanceof CTOleObject) { XMLStreamReader reader = cur.newXMLStreamReader(); try { CTOleObjects coos = CTOleObjects.Factory.parse(reader); if (cur.toChild(XSSFRelation.NS_SPREADSHEETML, "objectPr")) { break; cur.dispose();
cur1.toEndToken(); cur1.beginElement("objectPr", XSSFRelation.NS_SPREADSHEETML); cur1.insertAttributeWithValue("id", PackageRelationshipTypes.CORE_PROPERTIES_ECMA376_NS, imgSheetPR.getId()); cur1.insertAttributeWithValue("defaultSize", "0"); cur1.beginElement("anchor", XSSFRelation.NS_SPREADSHEETML); cur1.insertAttributeWithValue("moveWithCells", "1"); cur2.copyXmlContents(cur1); cur2.dispose(); cur1.toParent(); cur1.toFirstChild(); cur1.setName(new QName(XSSFRelation.NS_SPREADSHEETML, "from")); cur1.toNextSibling(); cur1.setName(new QName(XSSFRelation.NS_SPREADSHEETML, "to")); cur1.dispose(); extCur.toFirstChild(); extCur.setAttributeText(new QName("spid"), "_x0000_s" + shapeId); extCur.dispose();
@Override public boolean isLineStyle() { XmlCursor cur = props.newCursor(); String name = cur.getName().getLocalPart(); cur.dispose(); return "lnRef".equals(name); } }
static CTGraphicalObjectFrame prototype(int shapeId){ CTGraphicalObjectFrame frame = CTGraphicalObjectFrame.Factory.newInstance(); CTGraphicalObjectFrameNonVisual nvGr = frame.addNewNvGraphicFramePr(); CTNonVisualDrawingProps cnv = nvGr.addNewCNvPr(); cnv.setName("Table " + shapeId); cnv.setId(shapeId); nvGr.addNewCNvGraphicFramePr().addNewGraphicFrameLocks().setNoGrp(true); nvGr.addNewNvPr(); frame.addNewXfrm(); CTGraphicalObjectData gr = frame.addNewGraphic().addNewGraphicData(); XmlCursor grCur = gr.newCursor(); grCur.toNextToken(); grCur.beginElement(new QName(XSLFRelation.NS_DRAWINGML, "tbl")); CTTable tbl = CTTable.Factory.newInstance(); tbl.addNewTblPr(); tbl.addNewTblGrid(); XmlCursor tblCur = tbl.newCursor(); tblCur.moveXmlContents(grCur); tblCur.dispose(); grCur.dispose(); gr.setUri(TABLE_URI); return frame; }
ext.setUri("{63B3BB69-23CF-44E3-9099-C40C66FF867C}"); XmlCursor cur = ext.newCursor(); cur.toEndToken(); cur.beginElement(new QName(drawNS, "compatExt", "a14")); cur.insertNamespace("a14", drawNS); cur.insertAttributeWithValue("spid", "_x0000_s1"); cur.dispose();
protected Element processElement(XmlCursor xc, String comment, Inst2XsdOptions options, TypeSystemHolder typeSystemHolder) assert xc.isStart(); Element element = new Element(); element.setName(xc.getName()); element.setGlobal(false); XmlCursor.TokenType tt = xc.toNextToken(); switch (tt.intValue()) QName attName = xc.getName(); if (!_xsiNil.getNamespaceURI().equals(attName.getNamespaceURI())) attributes.add(processAttribute(xc, options, element.getName().getNamespaceURI(), typeSystemHolder)); else if (_xsiNil.equals(attName)) element.setNillable(true); textBuff.append(xc.getChars()); break; commentBuff.append(xc.getTextValue()); break; XmlCursor xcForNamespaces = xc.newCursor(); xcForNamespaces.toParent(); xcForNamespaces.dispose(); // end hack
gr.setUri(OLE_URI); XmlCursor grCur = gr.newCursor(); grCur.toEndToken(); grCur.beginElement(new QName(PML_NS, "oleObj")); grCur.insertElement(new QName(PML_NS, "embed")); picCur.toStartDoc(); picCur.moveXmlContents(grCur); picCur.dispose(); grCur.dispose();
XmlCursor cur = restriction.newCursor(); for (boolean more = cur.toFirstChild(); more; more = cur.toNextSibling()) QName facetQName = cur.getName(); String facetName = facetQName.getLocalPart(); int code = translateFacetCode(facetQName); if (code == -1) continue; Facet facet = (Facet)cur.getObject();