示例#1
0
 /**
  * 设置属性
  *
  * @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>");
  }