use of com.sun.msv.util.StringRef in project OpenAM by OpenRock.
the class MSVValidator method writePendingText.
private void writePendingText() throws SAXException {
// assert(textBuf!=null);
if (!acceptor.onText2(buf.toString(), this, null, null)) {
// this text is invalid.
// report an error
StringRef ref = new StringRef();
acceptor.onText2(buf.toString(), this, ref, null);
context.reportEvent(target, ref.str);
}
if (buf.length() > 1024)
buf = new StringBuffer();
else
buf.setLength(0);
}
use of com.sun.msv.util.StringRef in project OpenAM by OpenRock.
the class MSVValidator method startElement.
public void startElement(String uri, String local) throws SAXException {
writePendingText();
context.getNamespaceContext().startElement();
stack.push(acceptor);
StartTagInfo sti = new StartTagInfo(uri, local, local, emptyAttributes, this);
// we pass in an empty attributes, as there is just no way for us to
// properly re-construct attributes. Fortunately, I know MSV is not using
// attribute values, so this would work, but nevertheless this code is
// ugly. This is one of the problems of the "middle" approach.
Acceptor child = acceptor.createChildAcceptor(sti, null);
if (child == null) {
// this element is invalid. probably, so this object is invalid
// report an error
StringRef ref = new StringRef();
child = acceptor.createChildAcceptor(sti, ref);
context.reportEvent(target, ref.str);
}
this.currentElementUri = uri;
this.currentElementLocalName = local;
acceptor = child;
}
use of com.sun.msv.util.StringRef in project OpenAM by OpenRock.
the class MSVValidator method endElement.
public void endElement() throws SAXException {
writePendingText();
if (!acceptor.isAcceptState(null)) {
// some required elements are missing
// report error
StringRef ref = new StringRef();
acceptor.isAcceptState(ref);
context.reportEvent(target, ref.str);
}
// pop the acceptor
Acceptor child = acceptor;
acceptor = (Acceptor) stack.pop();
if (!acceptor.stepForward(child, null)) {
// some required elements are missing.
// report an error
StringRef ref = new StringRef();
// force recovery and obtain an error message.
acceptor.stepForward(child, ref);
context.reportEvent(target, ref.str);
}
context.getNamespaceContext().endElement();
}
use of com.sun.msv.util.StringRef in project OpenAM by OpenRock.
the class MSVValidator method endAttributes.
public void endAttributes() throws SAXException {
if (!acceptor.onEndAttributes(null, null)) {
// some required attributes are missing.
// report a validation error
// Note that we don't know which property of this object
// causes this error.
StringRef ref = new StringRef();
StartTagInfo sti = new StartTagInfo(currentElementUri, currentElementLocalName, currentElementLocalName, emptyAttributes, this);
acceptor.onEndAttributes(sti, ref);
context.reportEvent(target, ref.str);
}
}
use of com.sun.msv.util.StringRef in project OpenAM by OpenRock.
the class MSVValidator method endAttribute.
public void endAttribute() throws SAXException {
insideAttribute = false;
if (!acceptor.onAttribute2(attNamespaceUri, attLocalName, attLocalName, /* we don't have QName, so just use the local name */
buf.toString(), this, null, null)) {
// either the name was incorrect (which is quite unlikely),
// or the value was wrong.
// report an error
StringRef ref = new StringRef();
acceptor.onAttribute2(attNamespaceUri, attLocalName, attLocalName, buf.toString(), this, ref, null);
context.reportEvent(target, ref.str);
}
buf = new StringBuffer();
}
Aggregations