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