/** * 设置属性 * * @param os * @return */ private XMLSerializer getXMLSerializer(OutputStream os) { OutputFormat of = new OutputFormat(); formatCDataTag(); of.setCDataElements(cdataNode); of.setPreserveSpace(true); of.setIndenting(true); of.setOmitXMLDeclaration(true); XMLSerializer serializer = new XMLSerializer(of); serializer.setOutputByteStream(os); return serializer; }
private void appendFormERDF(Writer writer) throws IOException { String name = context.getForm().getAttributes().get("name"); if (name == null) name = ""; String head = ""; if (context.getForm().getHead() != null) { try { ByteArrayOutputStream stream = new ByteArrayOutputStream(); XMLSerializer serializer = new XMLSerializer(); serializer.setOutputByteStream(stream); serializer.asDOMSerializer(); serializer.setNamespaces(true); serializer.serialize(context.getForm().getHead()); head = StringEscapeUtils.escapeXml(stream.toString()); } catch (IOException e) { e.printStackTrace(); } } String nsDeclarations = ""; for (String key : context.getForm().getNSDeclarations().keySet()) { nsDeclarations += "[" + key + "," + context.getForm().getNSDeclarations().get(key) + "]"; } writer.append("<div id=\"" + context.getForm().getResourceId() + "\" class=\"-oryx-canvas\">"); appendOryxField(writer, "type", STENCILSET_URI + "#" + context.getForm().getStencilId()); appendXFormsField(writer, "id", ""); appendXFormsField(writer, "name", name); appendXFormsField(writer, "version", ""); appendXFormsField(writer, "head", head); appendXFormsField(writer, "nsdeclarations", nsDeclarations); appendOryxField(writer, "mode", "writable"); appendOryxField(writer, "mode", "fullscreen"); writer.append( "<a rel=\"oryx-stencilset\" href=\"/oryx/stencilsets/xforms/xforms.json\"/>"); // TODO: HACK // TO MAKE IT // WORK FOR // NOW for (String id : context.getResourceIds()) { writer.append("<a rel=\"oryx-render\" href=\"#" + id + "\"/>"); } writer.append("</div>"); }