Example #1
0
 /**
  * Bind an Element that represents a property.
  *
  * <p>The exact behavior depends on the element's attributes. If it has a <code>name</code> or
  * <code>ID</code> attribute, it is associated with that name in a Namespace binding, which in
  * turn is associated with the Element's tagname. Otherwise, it is simply associated with the
  * Element's tagname, just like a NamedNodeMap.
  *
  * @param binding the element to store.
  * @see org.w3c.dom.NamedNodeMap
  */
 public void setPropertyBinding(ActiveElement binding) {
   String name = binding.getAttribute("name");
   if (name == null) name = binding.getAttribute("ID");
   if (name == null) {
     setBinding(binding.getTagName(), binding);
   } else {
     setNamedBinding(binding.getTagName(), name, binding);
   }
 }
Example #2
0
 /**
  * Process the current node by expanding entities in its attributes, but blindly copying its
  * children (content).
  */
 public final void expandCurrentAttrs() {
   ActiveNode node = input.getActive();
   if (input.hasActiveAttributes()) {
     ActiveElement oe = node.asElement();
     ActiveElement e = new TreeElement(oe, expandAttrs(oe.getAttrList()));
     output.startNode(e);
     if (input.hasChildren()) {
       copyChildren();
     }
     output.endElement(e.isEmptyElement() || e.implicitEnd());
   } else if (input.hasChildren() && !node.hasChildNodes()) {
     copyCurrentNode(node);
   } else {
     output.putNode(node);
   }
 }
Example #3
0
  /**
   * Process the current node in the default manner, expanding entities in its attributes and
   * processing its children re-entrantly.
   */
  public final void expandCurrentNode() {
    ActiveNode node = input.getActive();
    if (node == null) return;

    // Crock for PI comments:
    if (node.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE && node.getNodeName().equals("--"))
      return;

    // No need to check for an entity; active ones use EntityHandler.
    if (input.hasActiveAttributes()) {
      ActiveElement oe = node.asElement();
      ActiveElement e = oe.editedCopy(expandAttrs(oe.getAttrList()), null);
      output.startNode(e);
      if (input.hasChildren()) {
        processChildren();
      }
      output.endElement(e.isEmptyElement() || e.implicitEnd());
    } else if (input.hasChildren()) {
      output.startNode(node);
      if (input.hasChildren()) processChildren();
      output.endNode();
    } else {
      output.putNode(node);
    }
  }
Example #4
0
 /** Expand entities in the value of a given attribute. */
 public void expandAttribute(ActiveAttr att, ActiveElement e) {
   e.setAttributeValue(att.getName(), expandNodes(att.getValueNodes(null)));
 }