Package nu.xom

Examples of nu.xom.Builder$ValidityRequired


    return x.indexOf(y) >= 0;
  }

  protected static Builder getBuilder() {
//    if (!ENABLE_BUILDER_POOL) return new Builder();
    if (!ENABLE_BUILDER_POOL) return new Builder(new NodeFactory() {});
    return BuilderPool.GLOBAL_POOL.getBuilder(false);
  }
View Full Code Here


    final PoolConfig config = new PoolConfig();
    int k = -1;
   
    Document doc = null;
    if (args.length > ++k && !args[k].equals("-"))
      doc = new Builder().build(args[k]);
   
    int threads = 1;
    if (args.length > ++k) threads = Math.max(1, Integer.parseInt(args[k]));
   
    if (args.length > ++k) config.setCompressionLevel(Integer.parseInt(args[k]));
View Full Code Here

   * @param validate
   *            whether or not to validate
   * @return a new Builder
   */
  protected Builder newBuilder(XMLReader parser, boolean validate) {
    return new Builder(parser, validate, null);    
  }
View Full Code Here

        if (mode.indexOf("NNF") >= 0) {
          bnuxFactory = XOMUtil.getNullNodeFactory();
        }
      }

      Builder builder = new Builder();
//      Builder builder = BuilderPool.GLOBAL_POOL.getBuilder(false);
      if (mode.equals("xom-V")) {
        builder = new Builder(new NodeFactory() {});
      }
      if (mode.equals("xom-NNF")) {
        builder = new Builder(XOMUtil.getNullNodeFactory());
      }
     
      // saxon
      StaticQueryContext context = null;
      Transformer saxonSerializer = null;
      if (mode.equals("saxon")) {
        context = new StaticQueryContext(new Configuration());
        String clazz = "net.sf.saxon.TransformerFactoryImpl";
        System.setProperty("javax.xml.transform.TransformerFactory", clazz);
        saxonSerializer = TransformerFactory.newInstance().newTransformer();
      }
     
      // DOM
      DocumentBuilder domBuilder = null;
      Transformer domSerializer = null;
      if (mode.equals("dom")) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        factory.setAttribute("http://apache.org/xml/features/dom/defer-node-expansion", Boolean.FALSE);
        domBuilder = factory.newDocumentBuilder();
        String clazz = "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl";
//        String clazz = "org.apache.xalan.processor.TransformerFactoryImpl";
        System.setProperty("javax.xml.transform.TransformerFactory", clazz);
        domSerializer = TransformerFactory.newInstance().newTransformer();
        System.err.println(domSerializer.getClass().getName());
      }
     
      // FastInfoSet
      Object fiSerializer = null;
//      XMLStreamWriter fiStaxSerializer = null;
      Builder fiBuilder = null
      Method fiMethod = null;
     
      XMLStreamReader fistaxReader = null;
      Method fistaxMethod = null;
      if (mode.startsWith("fi")) {
        NodeFactory factory = null;
        if (mode.indexOf("NNF") >= 0) factory = XOMUtil.getNullNodeFactory();
        XMLReader parser = (XMLReader) Class.forName("com.sun.xml.fastinfoset.sax.SAXDocumentParser").newInstance();
        fiBuilder = new Builder(parser, false, factory);
       
        if (mode.indexOf("stax") >= 0) {
          fiSerializer = (XMLStreamWriter) Class.forName("com.sun.xml.fastinfoset.stax.StAXDocumentSerializer").newInstance();       
        } else {
          fiSerializer = (ContentHandler) Class.forName("com.sun.xml.fastinfoset.sax.SAXDocumentSerializer").newInstance();
        }
       
        if (mode.startsWith("fi1")) { // enable "full indexing"
          Method method;
          method = fiSerializer.getClass().getMethod(
              "setAttributeValueSizeLimit", new Class[] {Integer.TYPE});
          method.invoke(fiSerializer, new Object[] {new Integer(Integer.MAX_VALUE)});
          method = fiSerializer.getClass().getMethod(
              "setCharacterContentChunkSizeLimit", new Class[] {Integer.TYPE});
          method.invoke(fiSerializer, new Object[] {new Integer(Integer.MAX_VALUE)});
        }
       
        fiMethod = fiSerializer.getClass().getMethod(
            "setOutputStream", new Class[] { OutputStream.class});
       
        if (mode.indexOf("stax") >= 0) {
          fistaxReader = (XMLStreamReader) Class.forName("com.sun.xml.fastinfoset.stax.StAXDocumentParser").newInstance();
          fistaxMethod = fistaxReader.getClass().getMethod(
              "setInputStream", new Class[] { InputStream.class});
        }
      }
     
      // StAX
      Builder staxBuilder = null;
      if (mode.indexOf("stax") >= 0) {
        NodeFactory factory = null;
        if (mode.indexOf("NNF") >= 0) factory = XOMUtil.getNullNodeFactory();
        staxBuilder = StaxUtil.createBuilder(staxInputFactory, factory);
      }
     
      for (int j=5; j < args.length; j++) {
        try {
          File[] files = IOTestUtil.listXMLFiles(args[j]);
          for (int k=0; k < files.length; k++) {
            File file = files[k];
            if (bogus(file) || ignore(file) || file.isDirectory()) {
              System.out.println("\n" + ": IGNORING " + file + " ...");
              continue;
            }
           
            System.out.println("now processing " + file);
  //          System.out.print(".");
           
            // prepare
            // file:/path/to/file --> file:///path/to/file
            String baseURI = file.toURI().toASCIIString();
            if (baseURI.startsWith("file:/")) {
              baseURI = baseURI.substring("file:/".length());
              if (!baseURI.startsWith("//")) baseURI = "//" + baseURI;
              baseURI = "file:/" + baseURI;
            }
  //          System.out.println("baseURI: " + baseURI);
            Document doc = new Builder().build(file);
           
            byte[] data = codec.serialize(doc, compressionLevel);
            if (!cmd.equals("test")) doc = new BinaryXMLCodec().deserialize(data); // use "interned" strings
            byte[] fileData = FileUtil.toByteArray(new FileInputStream(file));
            long fileLength = file.length();
            int encodedSize = 0;
           
            org.w3c.dom.Document domDoc = null;
            if (mode.equals("dom")) {
              domDoc = domBuilder.parse(file);
            }
           
            NodeInfo saxonDoc = null;
            if (mode.equals("saxon")) {
              saxonDoc = context.buildDocument(new StreamSource(new ByteArrayInputStream(fileData)));
            }
   
            if (mode.startsWith("fi")) {
              if (mode.indexOf("stax") >= 0) {
//                data = serializeWithStax(doc, staxOutputFactory);
                data = serializeWithFastInfosetStax(doc, (XMLStreamWriter)fiSerializer, fiMethod, new ByteArrayOutputStream());
              } else {
                data = serializeWithFastInfoset(doc, (ContentHandler)fiSerializer, fiMethod, new ByteArrayOutputStream());
              }
            }
   
            // run the benchmark
            long start = System.currentTimeMillis();
            for (int i = 0; i < iterations; i++) {
              try {
                // serialize
                if (cmd.equals("ser") || cmd.equals("serdeser") || cmd.equals("test")) {
                  ByteArrayOutputStream out = createOutputStream(cmd.equals("ser"));
                  if (mode.startsWith("bnux")) {
                    if (mode.indexOf("stream") < 0) {
                      codec.serialize(doc, compressionLevel, out);
                      data = out.toByteArray();
                    } else {
                      data = serializeWithStreamingBnux(doc, compressionLevel, out);
                    }
                  } else if (mode.startsWith("xom")) {
                    if (mode.indexOf("stax") >= 0) {
                      data = serializeWithStax(doc, staxOutputFactory, out);
                    } else if (mode.indexOf("stream") < 0) {
                      data = serializeWithXOM(doc, out);
                    } else {
                      data = serializeWithStreamingXOM(doc, out);
                    }
                  } else if (mode.equals("saxon")) {
                    saxonSerializer.transform(saxonDoc, new StreamResult(out));
                    data = out.toByteArray();
                  } else if (mode.equals("dom")) {
                    domSerializer.transform(new DOMSource(domDoc), new StreamResult(out));
                    data = out.toByteArray();
                  } else if (mode.startsWith("fi")) {
                    if (mode.indexOf("stax") >= 0) {
//                      data = serializeWithStax(doc, staxOutputFactory);
                      data = serializeWithFastInfosetStax(doc, (XMLStreamWriter)fiSerializer, fiMethod, out);
                    } else {
                      data = serializeWithFastInfoset(doc, (ContentHandler)fiSerializer, fiMethod, out);
                    }
                  } else {
                    throw new IllegalArgumentException("illegal mode");
                  }
                  checksum += data.length;
                }
                encodedSize = data.length;
                doneEncoded += encodedSize;
               
                // deserialize
                Document doc2 = null;
                if (cmd.equals("deser") || cmd.equals("serdeser") || cmd.equals("test")) {
                  if (mode.startsWith("bnux")) {
                    doc2 = codec.deserialize(new ByteArrayInputStream(data), bnuxFactory);
                  } else if (mode.startsWith("xom") && mode.indexOf("stax") >= 0) {
                    doc2 = staxBuilder.build(new ByteArrayInputStream(fileData));         
                  } else if (mode.startsWith("xom")) {
                    if (mode.indexOf("stream") < 0) {
                      doc2 = builder.build(new ByteArrayInputStream(fileData), baseURI);
                    } else {
                      doc2 = builder.build(new ByteArrayInputStream(data), baseURI);
                    }
                  } else if (mode.equals("saxon")) { // just for deser comparison
                    context.buildDocument(new StreamSource(new ByteArrayInputStream(fileData)));
                  } else if (mode.equals("dom")) {
                    domDoc = domBuilder.parse(new ByteArrayInputStream(fileData));
  //                  System.err.println(domDoc.getClass().getName());
                  } else if (mode.startsWith("fi") && mode.indexOf("stax") >=0 ) {
                    fistaxMethod.invoke(fistaxReader, new Object[] {new ByteArrayInputStream(data)});
  //                  doc2 = staxBuilder.build(fistaxReader);
                    doc2 = new StaxParser(fistaxReader, staxBuilder.getNodeFactory()).build();
                  } else if (mode.startsWith("fi")) {
                    doc2 = fiBuilder.build(new ByteArrayInputStream(data));
                  } else {
                    throw new IllegalArgumentException("illegal mode");
                  }             
View Full Code Here

  private SimpleXQueryCommand() {}
 
  public static void main(String[] args) throws Exception {   
    String query = args[0];
    Document doc = null;
    if (args.length > 1) doc = new Builder().build(new File(args[1]));
   
    XQuery xquery;
    if (query.startsWith("{") && query.endsWith("}")) {
      // query is given inline between curly brackets, ala Saxon command line tool
      String strippedQuery = query.substring(1, query.length()-1);
View Full Code Here

  /** Runs the benchmark */
  public static void main(String[] args) throws Exception {
    int iters = Integer.parseInt(args[0]); // e.g. 1000
    int runs = Integer.parseInt(args[1])// e.g. 3
    Document doc = new Builder().build(new File(args[2])); // e.g. "data/samples/randj.xml"
    String path = args[3]; // e.g. "//line"
    String queryExpr = args[4]; // e.g. "Capul* thou"
   
    Analyzer textAnalyzer = PatternAnalyzer.DEFAULT_ANALYZER;
    Analyzer queryAnalyzer = PatternAnalyzer.DEFAULT_ANALYZER;
View Full Code Here

        // undocumented feature (temporary?): build it with XOM
        if (value instanceof File)
          value = new File[] { (File) value };
        File[] files = (File[]) value;
        ArrayList sources = new ArrayList(files.length);
        Builder builder = BuilderPool.GLOBAL_POOL.getBuilder(false);
        for (int i = 0; i < files.length; i++) {
          if (!files[i].isDirectory()) {
            Document doc;
            try {
              doc = builder.build(files[i]);
            } catch (Exception e) {
              throw new TransformerException(e);
            }
           
            sources.add(wrap(doc, docWrappers));
View Full Code Here

         String data = "<root>\n <servlet-mapping>\n"
             + "  <servlet-name>DeviceInfoServlet</servlet-name>\n"
             + "  <url-pattern>/tools/*</url-pattern>\n"
             + "</servlet-mapping>\n</root>";
        
         Builder builder = new Builder();
         Document doc = builder.build(data, null);
        
         Nodes result = doc.query("//*[./../servlet-name = 'DeviceInfoServlet']");
         assertEquals(2, result.size());
      
     }        
View Full Code Here

            + "         <e3 id=\"E3\"/>\n"
            + "      </e2>\n"
            + "   </e1>\n"
            + "</doc>";
       
        Document doc = (new Builder()).build(input, null);
        String xpath = "(/*/* | /*/*/namespace::*)\n";
        Nodes result = doc.query(xpath);
        assertEquals(4, result.size());
        Element parent = (Element) result.get(0);
        for (int i = 1; i < 4; i++) {
View Full Code Here

            + "         <e3 id=\"E3\"/>\n"
            + "      </e2>\n"
            + "   </e1>\n"
            + "</document>";
       
        Document doc = (new Builder()).build(input, null);
        String xpath = "(/*/* | /*/*/attribute::*)\n";
        Nodes result = doc.query(xpath);
        assertEquals(4, result.size());
        Element parent = (Element) result.get(0);
        for (int i = 1; i < 4; i++) {
View Full Code Here

TOP

Related Classes of nu.xom.Builder$ValidityRequired

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.