Пример #1
0
  public void endElement(String namespaceUri, String localName, String qname) throws SAXException {
    --level;
    // System.out.println(getClass().getName()+".endElement enter " + qname);
    try {
      StackContext stackEntry = stack.peek();
      SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
      if (bufferBuilder != null) {
        bufferBuilder.endElement(namespaceUri, localName, qname);
        if (level == 0) {
          bufferBuilder.endDocument();
          SaxEventBuffer buffer = bufferBuilder.getBuffer();
          SaxSource saxSource =
              new SaxEventBufferSource(buffer, "", context.getTransformerFactory());

          DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
          builderFactory.setValidating(false);
          builderFactory.setNamespaceAware(true);
          DocumentBuilder builder = builderFactory.newDocumentBuilder();

          XMLReader reader = saxSource.createXmlReader();
          // InputSource inputSource = new InputSource(reader);
          // Document doc = builder.parse(inputSource);

        }
      }
      stack.pop();
    } catch (ServingXmlException e) {
      throw new SAXException(e.getMessage(), e);
    } catch (Exception e) {
      throw new SAXException(e.getMessage(), e);
    }

    super.endElement(namespaceUri, localName, qname);
    // System.out.println(getClass().getName()+".endElement " + qname + " leave");
  }
Пример #2
0
  public void startElement(String namespaceUri, String localName, String qname, Attributes atts)
      throws SAXException {
    // System.out.println(getClass().getName()+".startElement ns=" + namespaceUri + ", name=" +
    // localName + ", qname=" + qname);

    StackContext stackEntry = stack.peek();
    SaxPath saxPathParent = stackEntry.saxPath;

    SaxPath saxPath;
    if (saxPathParent == null) {
      saxPath = new SaxPath(context.getNameTable(), namespaceUri, localName, qname, atts);
    } else {
      saxPath = new SaxPath(namespaceUri, localName, qname, atts, saxPathParent);
    }
    SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
    // System.out.println(getClass().getName()+".startElement matched");
    // if (saxPathParent == null) {
    if (level == 0) {
      bufferBuilder = new SaxEventBufferBuilder();
      bufferBuilder.startDocument();
      Iterator<Map.Entry<String, String>> iter = prefixMap.entrySet().iterator();
      while (iter.hasNext()) {
        Map.Entry<String, String> entry = iter.next();
        bufferBuilder.startPrefixMapping(entry.getValue(), entry.getKey());
      }
    }
    if (bufferBuilder != null) {
      bufferBuilder.startElement(namespaceUri, localName, qname, atts);
    }
    stack.push(new StackContext(saxPath, bufferBuilder));

    super.startElement(namespaceUri, localName, qname, atts);
    ++level;
    // System.out.println(getClass().getName()+".startElement " + qname + " leave");
  }
Пример #3
0
 public void endDocument() throws SAXException {
   // System.out.println(getClass().getName()+".endDocument enter" );
   if (stack != null && !stack.empty()) {
     stack.pop();
   }
   super.endDocument();
 }
Пример #4
0
 public void setDocumentLocator(Locator locator) {
   if (stack != null && !stack.empty()) {
     StackContext stackEntry = stack.peek();
     SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
     if (bufferBuilder != null) {
       bufferBuilder.setDocumentLocator(locator);
     }
   }
   super.setDocumentLocator(locator);
 }
Пример #5
0
 public void characters(char[] ch, int start, int length) throws SAXException {
   StackContext stackEntry = stack.peek();
   SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
   if (bufferBuilder != null) {
     bufferBuilder.characters(ch, start, length);
   }
   super.characters(ch, start, length);
 }
Пример #6
0
 public void skippedEntity(String name) throws SAXException {
   StackContext stackEntry = stack.peek();
   SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
   if (bufferBuilder != null) {
     bufferBuilder.skippedEntity(name);
   }
   super.skippedEntity(name);
 }
Пример #7
0
 public void processingInstruction(String target, String data) throws SAXException {
   StackContext stackEntry = stack.peek();
   SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
   if (bufferBuilder != null) {
     bufferBuilder.processingInstruction(target, data);
   }
   super.processingInstruction(target, data);
 }
Пример #8
0
 public void ignorableWhitespace(char ch[], int start, int length) throws SAXException {
   StackContext stackEntry = stack.peek();
   SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
   if (bufferBuilder != null) {
     bufferBuilder.ignorableWhitespace(ch, start, length);
   }
   super.ignorableWhitespace(ch, start, length);
 }
Пример #9
0
  public void startDocument() throws SAXException {
    // System.out.println(getClass().getName()+".startDocument enter" );
    stack = new Stack<StackContext>();
    stack.push(new StackContext(null, null));
    level = 0;

    super.startDocument();
  }
Пример #10
0
  public void endPrefixMapping(String prefix) throws SAXException {

    StackContext stackEntry = stack.peek();
    SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
    if (bufferBuilder != null) {
      bufferBuilder.endPrefixMapping(prefix);
    }

    super.endPrefixMapping(prefix);
  }
Пример #11
0
  public void startPrefixMapping(String prefix, String uri) throws SAXException {
    // System.out.println(getClass()+".startPrefixMapping " + prefix+":" + uri);

    StackContext stackEntry = stack.peek();
    SaxEventBufferBuilder bufferBuilder = stackEntry.bufferBuilder;
    if (bufferBuilder != null) {
      bufferBuilder.startPrefixMapping(prefix, uri);
    } else {
      prefixMap.put(uri, prefix);
    }

    super.startPrefixMapping(prefix, uri);
  }