Search in sources :

Example 1 with XMLInputFactory2

use of org.codehaus.stax2.XMLInputFactory2 in project aalto-xml by FasterXML.

the class TestStreamResult method testCreateUsingSystemId.

/**
 * This test is related to problem reported as [WSTX-182], inability
 * to use SystemId alone as source.
 */
public void testCreateUsingSystemId() throws IOException, XMLStreamException {
    File tmpF = File.createTempFile("staxtest", ".xml");
    tmpF.deleteOnExit();
    XMLOutputFactory f = getOutputFactory();
    StreamResult dst = new StreamResult();
    dst.setSystemId(tmpF);
    XMLStreamWriter sw = f.createXMLStreamWriter(dst);
    sw.writeStartDocument();
    sw.writeEmptyElement("root");
    sw.writeEndDocument();
    sw.close();
    // plus let's read and check it
    XMLInputFactory2 inf = getInputFactory();
    XMLStreamReader sr = inf.createXMLStreamReader(tmpF);
    assertTokenType(START_ELEMENT, sr.next());
    assertTokenType(END_ELEMENT, sr.next());
    sr.close();
}
Also used : StreamResult(javax.xml.transform.stream.StreamResult) XMLInputFactory2(org.codehaus.stax2.XMLInputFactory2)

Example 2 with XMLInputFactory2

use of org.codehaus.stax2.XMLInputFactory2 in project aalto-xml by FasterXML.

the class TestStreamReader method test.

@SuppressWarnings({ "unchecked", "resource" })
protected int test(File file) throws Exception {
    XMLInputFactory f = getFactory();
    System.out.print("Coalesce: " + f.getProperty(XMLInputFactory.IS_COALESCING));
    System.out.println(", NS-aware: " + f.getProperty(XMLInputFactory.IS_NAMESPACE_AWARE));
    System.out.print("Entity-expanding: " + f.getProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES));
    System.out.println(", validating: " + f.getProperty(XMLInputFactory.IS_VALIDATING));
    // System.out.println(", name interning: "+f.getProperty(XMLInputFactory2.P_INTERN_NAMES));
    int total = 0;
    XMLStreamReader2 sr;
    // Let's deal with gzipped files too?
    /*
        if (file.getName().endsWith(".gz")) {
            System.out.println("[gzipped input file!]");
            sr = f.createXMLStreamReader
                (new InputStreamReader(new GZIPInputStream
                                       (new FileInputStream(file)), "UTF-8"));
        } else {
            sr = f.createXMLStreamReader(new FileInputStream(file));
            //sr = f.createXMLStreamReader(new FileReader(file));
        }
        */
    /*
        {
            byte[] data = readData(file);
            sr = f.createXMLStreamReader(new Stax2ByteArraySource(data, 0, data.length));
            System.out.println("File '"+file+"', read "+data.length+" bytes in.");
        }
        */
    sr = (XMLStreamReader2) f.createXMLStreamReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
    // sr = f.createXMLStreamReader(new FileInputStream(file));
    System.out.println("SR; name interning: " + sr.getProperty(XMLInputFactory2.P_INTERN_NAMES));
    System.out.println("SR; URI interning: " + sr.getProperty(XMLInputFactory2.P_INTERN_NS_URIS));
    int type = sr.getEventType();
    System.out.println("START: version = '" + sr.getVersion() + "', xml-encoding = '" + sr.getCharacterEncodingScheme() + "', input encoding = '" + sr.getEncoding() + "'");
    while (type != END_DOCUMENT) {
        type = sr.next();
        // so it won't be optimized out...
        total += type;
        // boolean hasName = sr.hasName();
        System.out.print("[" + type + "]");
        if (sr.hasText()) {
            String text = sr.getText();
            // to prevent dead code elimination
            total += text.length();
            if (type == CHARACTERS || type == CDATA || type == COMMENT) {
                System.out.println(" Text(" + text.length() + " = '" + text + "'.");
                if (text.length() >= 1) {
                    System.out.println(" [first char code: 0x" + Integer.toHexString(text.charAt(0)) + "]");
                }
                LocationInfo li = sr.getLocationInfo();
                System.out.println(" [Loc, start: " + li.getStartLocation() + ", end: " + li.getEndLocation() + "]");
            } else if (type == SPACE) {
                System.out.print(" Ws = '" + text + "'.");
                char c = (text.length() == 0) ? ' ' : text.charAt(text.length() - 1);
                if (c != '\r' && c != '\n') {
                    System.out.println();
                }
            } else if (type == DTD) {
                System.out.println(" DTD;");
                List<Object> entities = (List<Object>) sr.getProperty("javax.xml.stream.entities");
                List<Object> notations = (List<Object>) sr.getProperty("javax.xml.stream.notations");
                int entCount = (entities == null) ? -1 : entities.size();
                int notCount = (notations == null) ? -1 : notations.size();
                System.out.print("  (" + entCount + " entities, " + notCount + " notations), sysid ");
                System.out.print(", declaration = <<");
                System.out.print(text);
                System.out.println(">>");
            } else if (type == ENTITY_REFERENCE) {
                // entity ref
                System.out.println(" Entity ref: &" + sr.getLocalName() + " -> '" + sr.getText() + "'.");
            // hasName = false; // to suppress further output
            } else {
                // PI?
                ;
            }
        }
        if (type == PROCESSING_INSTRUCTION) {
            System.out.println(" PI target = '" + sr.getPITarget() + "'.");
            System.out.println(" PI data = '" + sr.getPIData() + "'.");
        } else if (type == START_ELEMENT) {
            String prefix = sr.getPrefix();
            System.out.print('<');
            if (prefix != null && prefix.length() > 0) {
                System.out.print(prefix);
                System.out.print(':');
            }
            System.out.print(sr.getLocalName());
            // System.out.println("[first char 0x"+Integer.toHexString(sr.getLocalName().charAt(0))+"]");
            System.out.print(" [QNameNS: " + sr.getName().getNamespaceURI() + "]");
            System.out.print(" {ns '");
            System.out.print(sr.getNamespaceURI());
            System.out.print("'}> ");
            int count = sr.getAttributeCount();
            int nsCount = sr.getNamespaceCount();
            System.out.println(" [" + nsCount + " ns, " + count + " attrs]");
            // debugging:
            for (int i = 0; i < nsCount; ++i) {
                System.out.println(" ns#" + i + ": '" + sr.getNamespacePrefix(i) + "' -> '" + sr.getNamespaceURI(i) + "'");
            }
            for (int i = 0; i < count; ++i) {
                String val = sr.getAttributeValue(i);
                System.out.print(" attr#" + i + ": " + sr.getAttributePrefix(i) + ":" + sr.getAttributeLocalName(i) + " (" + sr.getAttributeNamespace(i) + ") -> '" + val + "' [" + (val.length()) + "]");
                System.out.println(sr.isAttributeSpecified(i) ? "[specified]" : "[Default]");
            }
        } else if (type == END_ELEMENT) {
            System.out.print("</");
            String prefix = sr.getPrefix();
            if (prefix != null && prefix.length() > 0) {
                System.out.print(prefix);
                System.out.print(':');
            }
            System.out.print(sr.getLocalName());
            System.out.print(" {ns '");
            System.out.print(sr.getNamespaceURI());
            System.out.print("'}> ");
            int nsCount = sr.getNamespaceCount();
            System.out.println(" [" + nsCount + " ns unbound]");
        } else if (type == START_DOCUMENT) {
            // only for multi-doc mode
            System.out.print("XML-DECL: version = '" + sr.getVersion() + "', xml-decl-encoding = '" + sr.getCharacterEncodingScheme() + "', app-encoding = '" + sr.getEncoding() + "', stand-alone set: " + sr.standaloneSet());
        }
    }
    return total;
}
Also used : XMLStreamReader2(org.codehaus.stax2.XMLStreamReader2) List(java.util.List) LocationInfo(org.codehaus.stax2.LocationInfo)

Example 3 with XMLInputFactory2

use of org.codehaus.stax2.XMLInputFactory2 in project aalto-xml by FasterXML.

the class TestDTDSkimming method createReader.

private XMLStreamReader2 createReader(String content, String enc) throws IOException, XMLStreamException {
    // Let's ensure it's a new factory, to minimize caching probs
    XMLInputFactory2 f = newInputFactory();
    if (enc == null) {
        // reader-based
        return (XMLStreamReader2) f.createXMLStreamReader(new StringReader(content));
    }
    // nope, byte based
    byte[] data = content.getBytes(enc);
    return (XMLStreamReader2) f.createXMLStreamReader(new ByteArrayInputStream(data));
}
Also used : XMLInputFactory2(org.codehaus.stax2.XMLInputFactory2) XMLStreamReader2(org.codehaus.stax2.XMLStreamReader2)

Aggregations

XMLInputFactory2 (org.codehaus.stax2.XMLInputFactory2)2 XMLStreamReader2 (org.codehaus.stax2.XMLStreamReader2)2 List (java.util.List)1 StreamResult (javax.xml.transform.stream.StreamResult)1 LocationInfo (org.codehaus.stax2.LocationInfo)1