Package org.codehaus.stax2

Examples of org.codehaus.stax2.XMLStreamWriter2


        throws XMLStreamException
    {
        /* In non-validating mode, shouldn't matter: but just to make sure,
         * let's also disable xml:id processing
         */
        XMLStreamReader2 sr = getReader(XML_WITH_XMLID_INVALID, false, nsAware, coal);
        assertTokenType(DTD, sr.next());
        assertTokenType(START_ELEMENT, sr.next());
    }
View Full Code Here


            ;
        /* Let's also add trailing CDATA, to ensure no coalescing is done
         * when not requested
         */
        String XML = "<root>" + CONTENT_IN + "<![CDATA[cdata]]></root>";
        XMLStreamReader2 sr = getReader(XML, false);
        assertTokenType(START_ELEMENT, sr.next());
        assertTokenType(CHARACTERS, sr.next());
        StringWriter sw = new StringWriter();
        sr.getText(sw, false);
        String act = sw.toString();
        if (!act.equals(CONTENT_OUT)) {
            if (CONTENT_OUT.startsWith(act)) {
                fail("Streaming text accessors returned partial match; first "
                     +act.length()+" chars of the expected "
                     +CONTENT_OUT.length()+" chars");
            }
            fail("Content accessed using streaming text accessor (len "
                     +act.length()+"; exp "+CONTENT_OUT.length()+" chars) wrong: "
                 +"expected ["+CONTENT_OUT+"], got ["+act+"]");
        }

        // And should get the following CDATA, then:
        assertTokenType(CDATA, sr.next());
        // and then closing element; let's not check CDATA contents here
        assertTokenType(END_ELEMENT, sr.next());
    }
View Full Code Here

            ;
        /* Let's also add trailing text, to ensure no coalescing is done
         * when not requested
         */
        String XML = "<root><![CDATA[" + CONTENT_INOUT + "]]>some text!</root>";
        XMLStreamReader2 sr = getReader(XML, false);
        assertTokenType(START_ELEMENT, sr.next());
        assertTokenType(CDATA, sr.next());
        StringWriter sw = new StringWriter();
        sr.getText(sw, false);
        String act = sw.toString();
        if (!act.equals(CONTENT_INOUT)) {
            if (CONTENT_INOUT.startsWith(act)) {
                fail("Streaming text accessors returned partial match; first "
                     +act.length()+" chars of the expected "
                     +CONTENT_INOUT.length()+" chars");
            }
            fail("Content accessed using streaming text accessor (len "
                     +act.length()+"; exp "+CONTENT_INOUT.length()+" chars) wrong: "
                 +"expected ["+CONTENT_INOUT+"], got ["+act+"]");
        }

        // And should get the following CHARACTERS then:
        assertTokenType(CHARACTERS, sr.next());
        // and then closing element; let's not check text contents here
        assertTokenType(END_ELEMENT, sr.next());
    }
View Full Code Here

        String CONTENT_OUT2 = "Then CDATA and text...\nneat-o!";

        for (int i = 0; i < 2; ++i) {
            boolean first = (i == 0);
            String XML = "<root>" + (first ? CONTENT_IN1 : CONTENT_IN2) + "</root>";
            XMLStreamReader2 sr = getReader(XML, true);
            assertTokenType(START_ELEMENT, sr.next());
            assertTokenType(CHARACTERS, sr.next());
            StringWriter sw = new StringWriter();
            sr.getText(sw, false);
            String act = sw.toString();
            String exp = first ? CONTENT_OUT1 : CONTENT_OUT2;
            if (!act.equals(exp)) {
                if (exp.startsWith(act)) {
                    fail("Streaming text accessors returned partial match; first "
                         +act.length()+" chars of the expected "
                         +exp.length()+" chars");
                }
                fail("Content accessed using streaming text accessor (len "
                     +act.length()+"; exp "+exp.length()+" chars) wrong: "
                     +"expected ["+exp+"], got ["+act+"]");
            }
            // and then closing element
            assertTokenType(END_ELEMENT, sr.next());
        }
    }
View Full Code Here

    }
   
    protected void verifyFailure(String xml, XMLValidationSchema schema, String failMsg,
                                 String failPhrase, boolean strict) throws XMLStreamException
    {
        XMLStreamReader2 sr = constructStreamReader(getInputFactory(), xml);
        sr.validateAgainst(schema);
        try {
            while (sr.hasNext()) {
                /* int type = */sr.next();
            }
            fail("Expected validity exception for " + failMsg);
        } catch (XMLValidationException vex) {
            String origMsg = vex.getMessage();
            String msg = (origMsg == null) ? "" : origMsg.toLowerCase();
View Full Code Here

            +"<root>"
            +"<xy:elem xmlns:xy='http://foo' xmlns:another='http://x'>"
            +"<?proc instr?>&intEnt;<another:x /></xy:elem>"
            +"</root>"
            ;
        XMLStreamReader2 sr = getReader(XML, ns);
        try {
            assertTokenType(DTD, sr.next());
            assertEquals("root", sr.getPrefixedName());
            assertTokenType(START_ELEMENT, sr.next());
            assertEquals("root", sr.getPrefixedName());
            assertTokenType(START_ELEMENT, sr.next());
            assertEquals("xy:elem", sr.getPrefixedName());
            assertTokenType(PROCESSING_INSTRUCTION, sr.next());
            assertEquals("proc", sr.getPrefixedName());
            assertTokenType(START_ELEMENT, sr.next());
            assertEquals("leaf", sr.getPrefixedName());
            assertTokenType(END_ELEMENT, sr.next());
            assertEquals("leaf", sr.getPrefixedName());
            assertTokenType(START_ELEMENT, sr.next());
            assertEquals("another:x", sr.getPrefixedName());
            assertTokenType(END_ELEMENT, sr.next());
            assertEquals("another:x", sr.getPrefixedName());
            assertTokenType(END_ELEMENT, sr.next());
            assertEquals("xy:elem", sr.getPrefixedName());
            assertTokenType(END_ELEMENT, sr.next());
            assertEquals("root", sr.getPrefixedName());
            assertTokenType(END_DOCUMENT, sr.next());
        } catch (XMLStreamException xse) {
            fail("Did not expect any problems during parsing, but got: "+xse);
        }
    }
View Full Code Here

        System.out.print("Entity-expanding: "+f.getProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES));
        System.out.println("Validating: "+f.getProperty(XMLInputFactory.IS_VALIDATING));
        System.out.println("Xml-id support: "+f.getProperty(XMLInputFactory2.XSP_SUPPORT_XMLID));

        int total = 0;
        XMLStreamReader2 sr;

        // Let's deal with gzipped files too?
        if (file.getName().endsWith(".gz")) {
            System.out.println("[gzipped input file!]");
            sr = (XMLStreamReader2) f.createXMLStreamReader
                (new InputStreamReader(new GZIPInputStream
                                       (new FileInputStream(file)), "UTF-8"));
        } else {
            sr = f.createXMLStreamReader(file);
            //sr = (XMLStreamReader2) f.createXMLStreamReader(new InputStreamReader(new FileInputStream(file), "IBM500"));
            //sr = (XMLStreamReader2) f.createXMLStreamReader(new StreamSource(file));
        }

        //sr.setProperty(WstxInputProperties.P_BASE_URL, "file:///tmp");

        System.err.println("Base URL: "+sr.getProperty(WstxInputProperties.P_BASE_URL));

        int type = sr.getEventType();

        System.out.println("START: version = '"+sr.getVersion()
                           +"', xml-encoding = '"+sr.getCharacterEncodingScheme()
                           +"', input encoding = '"+sr.getEncoding()+"'");

        //while (sr.hasNext()) {
        while (type != END_DOCUMENT) {
            type = sr.next();
            total += type; // so it won't be optimized out...

            @SuppressWarnings("unused")
      boolean hasName = sr.hasName();

            System.out.print("["+type+"]");

            // Uncomment for location info debugging:
      /*
            LocationInfo li = sr.getLocationInfo();
            System.out.println(" BEGIN: "+li.getStartLocation());
            //System.out.println(" CURR:  "+li.getCurrentLocation());
            System.out.println(" END:   "+li.getEndLocation());
      */

            if (sr.hasText()) {
                String text = null;

                // Choose normal or streaming
                if (true) {
                    text = sr.getText();
                    /*
                } else {
                    StringWriter swr = new StringWriter();
                    int gotLen = sr.getText(swr, false);
                    text = swr.toString();
                    if (gotLen != text.length()) {
                        throw new Error("Error: lengths didn't match: getText() returned "+gotLen+", but String has "+text.length()+" chars.");
                    }
                    */
                }

                if (text != null) { // Ref. impl. returns nulls sometimes
                    total += text.length(); // to prevent dead code elimination
                }
                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))+"]");
                    }
                } 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) {
                    DTDInfo info = sr.getDTDInfo();
                    System.out.println(" DTD (root "
                                       +getNullOrStr(info.getDTDRootName())
                                       +", sysid "+getNullOrStr(info.getDTDSystemId())
                                       +", pubid "+getNullOrStr(info.getDTDPublicId())
                                       +");");
                    List<?> entities = (List<?>) sr.getProperty("javax.xml.stream.entities");
                    List<?> notations = (List<?>) 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 ");
                    if (notCount > 0) {
                        System.out.println();
                        for (int i = 0; i < notCount; ++i) {
                            NotationDeclaration2 nd = (NotationDeclaration2)notations.get(i);
                            System.out.println(" notation '"+nd.getName()+"', base: ["+nd.getBaseURI()+"]");
                        }
                    }
                    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 == CHARACTERS) {
                    boolean isSpace = sr.isWhiteSpace();
                    int len = sr.getTextLength();

                    if (isSpace) {
                        text = sr.getText();
                        StringBuffer sb = new StringBuffer();
                        for (int i = 0; i < len; ++i) {
                            char c = text.charAt(i);
                            if (c == ' ') {
                                sb.append("\\s");
                            } else if (c == '\t') {
//if(true) throw new Error("TAB!");
                                sb.append("\\t");
                            } else if (c == '\r') {
                                sb.append("\\r");
                            } else if (c == '\n') {
                                sb.append("\\n");
                            } else {
                                sb.append("?");
                            }
                        }
                        text = sb.toString();
                        System.out.println("[SC:"+text+"]");
                    }
                }
            }

            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) {
                    System.out.print("{null-prefix}");
                } else if (prefix.length() == 0) {
                    System.out.print("{empty-prefix}");
                } else {
                    System.out.print(prefix);
                }
                System.out.print(sr.getLocalName());
                //System.out.println("[first char 0x"+Integer.toHexString(sr.getLocalName().charAt(0))+"]");
                System.out.print(" {ns '");
                System.out.print(sr.getNamespaceURI());
                System.out.print("'}> ");
                int count = sr.getAttributeCount();
                int nsCount = sr.getNamespaceCount();
                int idIx = sr.getAttributeInfo().getIdAttributeIndex();
                System.out.println(" ["+nsCount+" ns, "+count+" attrs, id: "
                                   +((idIx < 0) ? "none" : ("#"+idIx))+"]");
                // 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.getAttributeType(i)+"): "+sr.getAttributePrefix(i)
                                     +":"+sr.getAttributeLocalName(i)
                                     +" ("+sr.getAttributeNamespace(i)
                                     +") -> '"+val
                                     +"' ["+(val.length())+"]");
                    System.out.println(sr.isAttributeSpecified(i) ?
                                       "[specified]" : "[Default]");
                }
                System.out.print(" [Loc -> "+sr.getLocation()+"]");
            } 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.print(" ["+nsCount+" ns unbound]");
                System.out.print(" [Loc -> "+sr.getLocation()+"]");
                System.out.println();
            } 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;
    }
View Full Code Here

        conn.connect();
        // note, should check 'if (conn.getResponseCode() != 200) ...'
       
        // Ok, let's read it then... (note: StaxMate could simplify a lot!)
        InputStream in = conn.getInputStream();
        XMLStreamReader2 sr = (XMLStreamReader2) _xmlInputFactory.createXMLStreamReader(in);
        sr.nextTag(); // to "files"
        byte[] buffer = new byte[4000];
       
        while (sr.nextTag() != XMLStreamConstants.END_ELEMENT) { // one more 'file'
            String filename = sr.getAttributeValue("", "name");
            String csumType = sr.getAttributeValue("", "checksumType");
            File outputFile = new File(toDir, filename);
            FileOutputStream out = new FileOutputStream(outputFile);
            files.add(outputFile);
            MessageDigest md = MessageDigest.getInstance(csumType);
           
            int count;
            // Read binary contents of the file, calc checksum and write
            while ((count = sr.readElementAsBinary(buffer, 0, buffer.length)) != -1) {
                md.update(buffer, 0, count);
                out.write(buffer, 0, count);
            }
            out.close();
            // Then verify checksum
            sr.nextTag()
            byte[] expectedCsum = sr.getAttributeAsBinary(sr.getAttributeIndex("", "value"));
            byte[] actualCsum = md.digest();
            if (!Arrays.equals(expectedCsum, actualCsum)) {
                throw new IllegalArgumentException("File '"+filename+"' corrupt: content checksum does not match expected");
            }
            sr.nextTag(); // to match closing "checksum"
        }
        return files;
    }
View Full Code Here

    protected int test3(byte[] bdata, char[] cdata, File file)
        throws Exception
    {
        XMLInputFactory2 f = (XMLInputFactory2) mInputFactory;
        XMLStreamReader2 sr;

        if (bdata != null) {
            //sr = (XMLStreamReader2) f.createXMLStreamReader(new ByteArrayInputStream(bdata));
            sr = (XMLStreamReader2) f.createXMLStreamReader(new org.codehaus.stax2.io.Stax2ByteArraySource(bdata, 0, bdata.length));
        } else {
            sr = (XMLStreamReader2) f.createXMLStreamReader(new CharArrayReader(cdata));
        }
        //sr = (XMLStreamReader2) f.createXMLStreamReader(file);

        int result = 0;

        while (sr.hasNext()) {
            int type = sr.next();
            if (type == CHARACTERS) { // let's prevent skipping
                result += sr.getTextLength();
            }
            result += type; // so it won't be optimized out...
        }
  sr.close();
        return result;
    }
View Full Code Here

    }

    public void testPropertiesStreamWriter() throws XMLStreamException
    {
        XMLOutputFactory f = getOutputFactory();
        XMLStreamWriter2 w = (XMLStreamWriter2) f.createXMLStreamWriter(new StringWriter());
       
        // First, verify property is indeed unsupported
        assertFalse(w.isPropertySupported(NO_SUCH_PROPERTY));
       
        // First: error for trying to access unknown, as per Stax 1.0 spec:
        try {
            w.getProperty(NO_SUCH_PROPERTY);
            fail("Expected exception");
        } catch (IllegalArgumentException e) {
            verifyException(e, NO_SUCH_PROPERTY);
        }

        // And although setter is specified by Stax2, it too fails on unrecognized:
        try {
            w.setProperty(NO_SUCH_PROPERTY, "foobar");
            fail("Expected exception");
        } catch (IllegalArgumentException e) {
            verifyException(e, NO_SUCH_PROPERTY);
        }
    }
View Full Code Here

TOP

Related Classes of org.codehaus.stax2.XMLStreamWriter2

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.