Package org.codehaus.stax2

Examples of org.codehaus.stax2.XMLStreamReader2


            ;
        /* 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

    private void doTestXmlId(boolean xmlidEnabled,
                             boolean nsAware, boolean coal)
        throws XMLStreamException
    {
        XMLStreamReader2 sr = getReader(XML_WITH_XMLID, xmlidEnabled, nsAware, coal);
        final String xmlidType = xmlidEnabled ? "ID" : "CDATA";

        // root:
        assertTokenType(START_ELEMENT, sr.next());
        assertEquals(1, sr.getAttributeCount());
        assertEquals("id", sr.getAttributeLocalName(0));
        assertEquals("CDATA", sr.getAttributeType(0));
        assertEquals(-1, sr.getAttributeInfo().getIdAttributeIndex());

        // leaf#1:
        assertTokenType(START_ELEMENT, sr.next());
        assertEquals(1, sr.getAttributeCount());
        assertEquals("abc", sr.getAttributeValue(0));
        if (xmlidEnabled) {
            assertEquals(0, sr.getAttributeInfo().getIdAttributeIndex());
        } else {
            assertEquals(-1, sr.getAttributeInfo().getIdAttributeIndex());
        }
        assertEquals(xmlidType, sr.getAttributeType(0));
        assertTokenType(END_ELEMENT, sr.next());

        // leaf#2:
        assertTokenType(START_ELEMENT, sr.next());
        assertEquals(1, sr.getAttributeCount());
        assertEquals("foobar", sr.getAttributeValue(0));
        assertEquals("id", sr.getAttributeLocalName(0));
        assertEquals(-1, sr.getAttributeInfo().getIdAttributeIndex());
        assertEquals("CDATA", sr.getAttributeType(0));
        assertTokenType(END_ELEMENT, sr.next());

        // leaf#3:
        assertTokenType(START_ELEMENT, sr.next());
        assertEquals(1, sr.getAttributeCount());
        assertEquals(xmlidType, sr.getAttributeType(0));
        if (xmlidEnabled) {
            assertEquals(0, sr.getAttributeInfo().getIdAttributeIndex());
        } else {
            assertEquals(-1, sr.getAttributeInfo().getIdAttributeIndex());
        }

        // also, should be normalized:
        if (xmlidEnabled) {
            assertEquals("_otherId", sr.getAttributeValue(0));
        } else {
            assertEquals("  _otherId ", sr.getAttributeValue(0));
        }
        assertTokenType(END_ELEMENT, sr.next());

        sr.close();
    }
View Full Code Here

    }

    private void doTestInvalid(boolean nsAware, boolean coal)
        throws XMLStreamException
    {
        XMLStreamReader2 sr = getValidatingReader(XML_WITH_XMLID_INVALID, nsAware, coal);
        try {
            assertTokenType(DTD, sr.next());
            assertTokenType(START_ELEMENT, sr.next());
            fail("Expected a validation exception for invalid Xml:id attribute declaration");
        } catch (XMLValidationException vex) {
            //System.err.println("VLD exc -> "+vex);
        }
    }
View Full Code Here

        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

        // to require the stax2 API no matter what.
        XMLStreamReader effectiveReader = reader;
        if (effectiveReader instanceof DepthXMLStreamReader) {
            effectiveReader = ((DepthXMLStreamReader)reader).getReader();
        }
        final XMLStreamReader2 reader2 = (XMLStreamReader2)effectiveReader;
        XMLValidationSchema vs = getValidator(serviceInfo);
        reader2.validateAgainst(vs);
    }
View Full Code Here

        // to require the stax2 API no matter what.
        XMLStreamReader effectiveReader = reader;
        if (effectiveReader instanceof DepthXMLStreamReader) {
            effectiveReader = ((DepthXMLStreamReader)reader).getReader();
        }
        final XMLStreamReader2 reader2 = (XMLStreamReader2)effectiveReader;
        XMLValidationSchema vs = getValidator(endpoint, serviceInfo);
        if (vs == null) {
            return false;
        }
        reader2.setValidationProblemHandler(new ValidationProblemHandler() {

            public void reportProblem(XMLValidationProblem problem) throws XMLValidationException {
                throw new Fault(new Message("READ_VALIDATION_ERROR", LOG, problem.getMessage()),
                                Fault.FAULT_CODE_CLIENT);
            }
        });
        reader2.validateAgainst(vs);
        return true;
    }
View Full Code Here

        String text = childIt.getText(); // has to be a text event
        if (childIt.getNext() == null) {
            return text;
        }

        XMLStreamReader2 sr = childIt._getStreamReader();
        int size = text.length() + sr.getTextLength()+ 20;
        StringBuilder sb = new StringBuilder(Math.max(size, 100));
        sb.append(text);
        do {
            // Let's assume char array access is more efficient...
            sb.append(sr.getTextCharacters(), sr.getTextStart(),
                      sr.getTextLength());
        } while (childIt.getNext() != null);

        return sb.toString();
    }
View Full Code Here

            ? SMFilterFactory.getTextOnlyFilter()
            : SMFilterFactory.getNonIgnorableTextFilter();
        SMInputCursor childIt = descendantCursor(f);

        // Any text in there?
        XMLStreamReader2 sr = childIt._getStreamReader();
        while (childIt.getNext() != null) {
            /* 'true' indicates that we are not to lose the text contained
             * (can call getText() multiple times, idempotency). While this
             * may not be as efficient as allowing content to be discarded,
             * let's play it safe. Another method could be added for
             * the alternative (fast but dangerous) behaviour as needed.
             */
            sr.getText(w, true);
        }
    }
View Full Code Here

        throws XMLStreamException
    {
        if (mElemInfoFactory != null) {
            return mElemInfoFactory.constructElementInfo(this, parent, prevSibling);
        }
        XMLStreamReader2 sr = _streamReader;
        return new DefaultElementInfo(parent, prevSibling,
                                      sr.getPrefix(), sr.getNamespaceURI(), sr.getLocalName(),
                                      _nodeCount-1, _elemCount-1, getParentCount());
    }
View Full Code Here

TOP

Related Classes of org.codehaus.stax2.XMLStreamReader2

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.