You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by ce...@apache.org on 2005/05/26 19:56:01 UTC

svn commit: r178658 - in /xmlbeans/trunk: src/common/org/apache/xmlbeans/impl/common/ src/typeimpl/org/apache/xmlbeans/impl/schema/ src/typeimpl/org/apache/xmlbeans/impl/validator/ test/src/ValidatingXSRTests/checkin/

Author: cezar
Date: Thu May 26 10:55:59 2005
New Revision: 178658

URL: http://svn.apache.org/viewcvs?rev=178658&view=rev
Log:
Enable fix in ValidatingXMLStreamReader. Enabled a validation test. Comment out stacktrace output when usin SchemaTypeSystems without associated javaName.

Modified:
    xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/Mutex.java
    xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeImpl.java
    xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/validator/ValidatingXMLStreamReader.java
    xmlbeans/trunk/test/src/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java

Modified: xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/Mutex.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/Mutex.java?rev=178658&r1=178657&r2=178658&view=diff
==============================================================================
--- xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/Mutex.java (original)
+++ xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/Mutex.java Thu May 26 10:55:59 2005
@@ -30,7 +30,7 @@
     {
         while (tryToAcquire() == false)
         {
-            this.wait();
+            wait();
         }
     }
 

Modified: xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeImpl.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeImpl.java?rev=178658&r1=178657&r2=178658&view=diff
==============================================================================
--- xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeImpl.java (original)
+++ xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeImpl.java Thu May 26 10:55:59 2005
@@ -1686,9 +1686,10 @@
                 { _javaClass = Class.forName(getFullJavaName(), false, getTypeSystem().getClassLoader()); }
             catch (ClassNotFoundException e)
             {
-                System.err.println("Could not find class name " + getFullJavaName());
-                System.err.println("Searched in classloader " + getTypeSystem().getClassLoader());
-                e.printStackTrace(System.err);
+//                This is a legitimate use, when users get a SchemaTypeSystem without compiling classes
+//                System.err.println("Could not find class name " + getFullJavaName());
+//                System.err.println("Searched in classloader " + getTypeSystem().getClassLoader());
+//                e.printStackTrace(System.err);
                 _javaClass = null;
             }
         }

Modified: xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/validator/ValidatingXMLStreamReader.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/validator/ValidatingXMLStreamReader.java?rev=178658&r1=178657&r2=178658&view=diff
==============================================================================
--- xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/validator/ValidatingXMLStreamReader.java (original)
+++ xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/validator/ValidatingXMLStreamReader.java Thu May 26 10:55:59 2005
@@ -66,7 +66,7 @@
     private final ElementEventImpl _elemEvent;
     private final AttributeEventImpl _attEvent;
     private final SimpleEventImpl _simpleEvent;
-//    private PackTextXmlStreamReader _packTextXmlStreamReader;
+    private PackTextXmlStreamReader _packTextXmlStreamReader;
 
     private int _state;
     private final int STATE_FIRSTEVENT = 0;
@@ -90,7 +90,7 @@
         _elemEvent = new ElementEventImpl();
         _attEvent = new AttributeEventImpl();
         _simpleEvent = new SimpleEventImpl();
-//        _packTextXmlStreamReader = new PackTextXmlStreamReader();
+        _packTextXmlStreamReader = new PackTextXmlStreamReader();
     }
 
     /**
@@ -105,16 +105,20 @@
     public void init(XMLStreamReader xsr, boolean startWithCurrentEvent, SchemaType contentType,
                      SchemaTypeLoader stl, XmlOptions options, Collection errorListener)
     {
-//        _packTextXmlStreamReader.init(xsr);
+        _packTextXmlStreamReader.init(xsr);
 
-        setParent(xsr);
+//        setParent(xsr);
+        setParent(_packTextXmlStreamReader);
         _contentType = contentType;
         _stl = stl;
         _options = options;
         _errorListener = errorListener;
-        _elemEvent.setXMLStreamReader(xsr);
-        _attEvent.setXMLStreamReader(xsr);
-        _simpleEvent.setXMLStreamReader(xsr);
+//        _elemEvent.setXMLStreamReader(xsr);
+//        _attEvent.setXMLStreamReader(xsr);
+//        _simpleEvent.setXMLStreamReader(xsr);
+        _elemEvent.setXMLStreamReader(_packTextXmlStreamReader);
+        _attEvent.setXMLStreamReader(_packTextXmlStreamReader);
+        _simpleEvent.setXMLStreamReader(_packTextXmlStreamReader);
         _validator = null;
         _state = STATE_FIRSTEVENT;
         if (_attNamesList!=null)
@@ -132,128 +136,129 @@
         }
     }
 
-//    private static class PackTextXmlStreamReader
-//        extends StreamReaderDelegate
-//        implements XMLStreamReader
-//    {
-//        private boolean _hasBufferedText;
-//        private StringBuffer _buffer = new StringBuffer();
-//        private int _textEventType;
-//
-//        void init(XMLStreamReader xmlstream)
-//        {
-//            setParent(xmlstream);
-//            _hasBufferedText = false;
-//            _buffer.delete(0, _buffer.length());
-//        }
-//
-//        public int next()
-//            throws XMLStreamException
-//        {
-//            if (_hasBufferedText)
-//            {
-//                clearBuffer();
-//                return super.getEventType();
-//            }
-//
-//            int evType = super.next();
-//
-//            if (evType == XMLEvent.CHARACTERS || evType == XMLEvent.CDATA || evType == XMLEvent.SPACE)
-//            {
-//                _textEventType = evType;
-//                bufferText();
-//            }
-//
-//            return evType;
-//        }
-//
-//        private void clearBuffer()
-//        {
-//            _buffer.delete(0, _buffer.length());
-//            _hasBufferedText = false;
-//        }
-//
-//        private void bufferText()
-//            throws XMLStreamException
-//        {
-//            assert super.hasText();
-//
-//            _buffer.append( super.getText());
-//
-//            while (hasNext())
-//            {
-//                int evType = super.next();
-//                _hasBufferedText = true;
-//
-//                switch (evType)
-//                {
-//                case XMLEvent.CHARACTERS:
-//                case XMLEvent.CDATA:
-//                case XMLEvent.SPACE:
-//                    _buffer.append(super.getText());
-//
-//                case XMLEvent.COMMENT:
-//                    //ignore
-//                    continue;
-//                default:
-//                    return;
-//                }
-//            }
-//        }
-//
-//        public String getText()
-//        {
-//            assert _hasBufferedText;
-//            return _buffer.toString();
-//        }
-//
-//        public int getTextLength()
-//        {
-//            assert _hasBufferedText;
-//            return _buffer.length();
-//        }
-//
-//        public int getTextStart()
-//        {
-//            assert _hasBufferedText;
-//            return 0;
-//        }
-//
-//        public char[] getTextCharacters()
-//        {
-//            assert _hasBufferedText;
-//            return _buffer.toString().toCharArray();
-//        }
-//
-//        public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length)
-//        {
-//            assert _hasBufferedText;
-//            _buffer.getChars(sourceStart, sourceStart + length, target, targetStart);
-//            return length;
-//        }
-//
-//        public boolean isWhiteSpace()
-//        {
-//            assert _hasBufferedText;
-//            return XmlWhitespace.isAllSpace(_buffer);
-//        }
-//
-//        public boolean hasText()
-//        {
-//            if (_hasBufferedText)
-//                return true;
-//            else
-//                return super.hasText();
-//        }
-//
-//        public int getEventType()
-//        {
-//            if (_hasBufferedText)
-//                return _textEventType;
-//            else
-//                return super.getEventType();
-//        }
-//    }
+    private static class PackTextXmlStreamReader
+        extends StreamReaderDelegate
+        implements XMLStreamReader
+    {
+        private boolean _hasBufferedText;
+        private StringBuffer _buffer = new StringBuffer();
+        private int _textEventType;
+
+        void init(XMLStreamReader xmlstream)
+        {
+            setParent(xmlstream);
+            _hasBufferedText = false;
+            _buffer.delete(0, _buffer.length());
+        }
+
+        public int next()
+            throws XMLStreamException
+        {
+            if (_hasBufferedText)
+            {
+                clearBuffer();
+                return super.getEventType();
+            }
+
+            int evType = super.next();
+
+            if (evType == XMLEvent.CHARACTERS || evType == XMLEvent.CDATA || evType == XMLEvent.SPACE)
+            {
+                _textEventType = evType;
+                bufferText();
+            }
+
+            return evType;
+        }
+
+        private void clearBuffer()
+        {
+            _buffer.delete(0, _buffer.length());
+            _hasBufferedText = false;
+        }
+
+        private void bufferText()
+            throws XMLStreamException
+        {
+            if (super.hasText())
+                _buffer.append( super.getText());
+
+            _hasBufferedText = true;
+
+            while (hasNext())
+            {
+                int evType = super.next();
+
+                switch (evType)
+                {
+                case XMLEvent.CHARACTERS:
+                case XMLEvent.CDATA:
+                case XMLEvent.SPACE:
+                    if (super.hasText())
+                        _buffer.append(super.getText());
+
+                case XMLEvent.COMMENT:
+                    //ignore
+                    continue;
+                default:
+                    return;
+                }
+            }
+        }
+
+        public String getText()
+        {
+            assert _hasBufferedText;
+            return _buffer.toString();
+        }
+
+        public int getTextLength()
+        {
+            assert _hasBufferedText;
+            return _buffer.length();
+        }
+
+        public int getTextStart()
+        {
+            assert _hasBufferedText;
+            return 0;
+        }
+
+        public char[] getTextCharacters()
+        {
+            assert _hasBufferedText;
+            return _buffer.toString().toCharArray();
+        }
+
+        public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length)
+        {
+            assert _hasBufferedText;
+            _buffer.getChars(sourceStart, sourceStart + length, target, targetStart);
+            return length;
+        }
+
+        public boolean isWhiteSpace()
+        {
+            assert _hasBufferedText;
+            return XmlWhitespace.isAllSpace(_buffer);
+        }
+
+        public boolean hasText()
+        {
+            if (_hasBufferedText)
+                return true;
+            else
+                return super.hasText();
+        }
+
+        public int getEventType()
+        {
+            if (_hasBufferedText)
+                return _textEventType;
+            else
+                return super.getEventType();
+        }
+    }
 
     private static class ElementEventImpl
         implements ValidatorListener.Event
@@ -309,8 +314,10 @@
         public QName getName()
         {
             // avoid construction of a new QName object after the bug in getName() is fixed.
-            QName qname = new QName(_xmlStream.getNamespaceURI(), _xmlStream.getLocalName());
-            return qname;
+            if (_xmlStream.hasName())
+                return new QName(_xmlStream.getNamespaceURI(), _xmlStream.getLocalName());
+            else
+                return null;
         }
 
         // On TEXT and ATTR
@@ -780,7 +787,7 @@
             source = location.getPublicId();
             if (source==null)
                 source = location.getSystemId();
-            
+
             _errorListener.add(XmlError.forLocation(msg, source, location));
         }
         else

Modified: xmlbeans/trunk/test/src/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/test/src/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java?rev=178658&r1=178657&r2=178658&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java (original)
+++ xmlbeans/trunk/test/src/ValidatingXSRTests/checkin/ValidatingXMLStreamReaderTests.java Thu May 26 10:55:59 2005
@@ -35,10 +35,12 @@
 import java.util.Iterator;
 
 import org.apache.xmlbeans.impl.validator.ValidatingXMLStreamReader;
+import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
 import org.apache.xmlbeans.XmlBeans;
 import org.apache.xmlbeans.XmlError;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlOptions;
 
 import org.openuri.testNumerals.DocDocument;
 
@@ -429,7 +431,7 @@
 
     }
 
-    public void ____testValidateContent1() throws XMLStreamException
+    public void testValidateContent1() throws XMLStreamException
     {
         XmlObject xo = XmlObject.Factory.newInstance();
         XmlCursor xc = xo.newCursor();
@@ -442,16 +444,65 @@
         Collection errors = new ArrayList();
 
         ValidatingXMLStreamReader valXsr = new ValidatingXMLStreamReader();
-        valXsr.init(xsr, false, DocDocument.Doc.type,
+        valXsr.init(xsr, true, DocDocument.Doc.type,
             XmlBeans.typeLoaderForClassLoader(ValidatingXMLStreamReader.class.getClassLoader()),
             null, errors);
 
-        while(valXsr.hasNext())
+        int depth = 0;
+
+        loop:   while(valXsr.hasNext())
         {
+            int evType = valXsr.getEventType();
+//            printState(valXsr);
+            if (evType==XMLEvent.END_ELEMENT)
+            {
+                depth++;
+                if (depth>=2)
+                {
+                    break loop;
+                }
+            }
             valXsr.next();
         }
         Assert.assertTrue("Content1 validation is broken.", valXsr.isValid());
     }
+
+    private static void printState(XMLStreamReader vxsr)
+    {
+        int et = vxsr.getEventType();
+        switch(et)
+        {
+            case XMLEvent.START_ELEMENT:
+                System.out.println("  SE " + vxsr.getName() + " atts: " + vxsr.getAttributeCount());
+                for (int i = 0; i < vxsr.getAttributeCount(); i++)
+                {
+                    System.out.println("    AT " + vxsr.getAttributeName(i) + " = '" + vxsr.getAttributeValue(i) + "'");
+                }
+                break;
+            case XMLEvent.END_ELEMENT:
+                System.out.println("  EE");
+                break;
+            case XMLEvent.START_DOCUMENT:
+                System.out.println("  SD");
+                break;
+            case XMLEvent.END_DOCUMENT:
+                System.out.println("  ED");
+                break;
+            case XMLEvent.CHARACTERS:
+            case XMLEvent.CDATA:
+            case XMLEvent.SPACE:
+                System.out.println("  TX " + vxsr.hasText() + " '" + (vxsr.hasText() ? vxsr.getText() : ""));
+                break;
+            case XMLEvent.ATTRIBUTE:
+            case XMLEvent.NAMESPACE:
+                System.out.println("  ATT " + vxsr.getName() + " '" + vxsr.getText() + "'");
+                break;
+            default:
+                System.out.println("  OTHER " + et + " '" + (vxsr.hasText() ? vxsr.getText() : ""));
+                break;
+        }
+    }
+
 
     public void testValidateContent2() throws XMLStreamException
     {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org