use of com.sun.msv.util.StringRef in project OpenAM by OpenRock.
the class MSVValidator method childAsElementBody.
private void childAsElementBody(Object o, ValidatableObject vo) throws SAXException {
String intfName = vo.getPrimaryInterface().getName();
intfName = intfName.replace('$', '.');
// if the object implements the RIElement interface,
// add a marker attribute to the dummy element.
//
// For example, if the object is org.acme.impl.FooImpl,
// the dummy element will look like
// <{DUMMY_ELEMENT_NS}org.acme.Foo
// {<URI of this element>}:<local name of this element>="" />
//
// This extra attribute is used to validate wildcards.
// AttributesImpl atts;
// if(o instanceof RIElement) {
// RIElement rie = (RIElement)o;
// atts = new AttributesImpl();
// atts.addAttribute(
// rie.____jaxb_ri____getNamespaceURI(),
// rie.____jaxb_ri____getLocalName(),
// rie.____jaxb_ri____getLocalName(), // use local name as qname
// "CDATA",
// ""); // we don't care about the attribute value
// } else
// atts = emptyAttributes;
// feed a dummy element to the acceptor.
StartTagInfo sti = new StartTagInfo(DUMMY_ELEMENT_NS, intfName, intfName, /*just pass the local name as QName.*/
emptyAttributes, this);
Acceptor child = acceptor.createChildAcceptor(sti, null);
if (child == null) {
// some required elements were missing. report errors
StringRef ref = new StringRef();
child = acceptor.createChildAcceptor(sti, ref);
context.reportEvent(target, ref.str);
}
if (o instanceof RIElement) {
RIElement rie = (RIElement) o;
if (!child.onAttribute2(rie.____jaxb_ri____getNamespaceURI(), rie.____jaxb_ri____getLocalName(), rie.____jaxb_ri____getLocalName(), "", null, null, null))
// this object is not a valid member of the wildcard
context.reportEvent(target, Messages.format(Messages.INCORRECT_CHILD_FOR_WILDCARD, rie.____jaxb_ri____getNamespaceURI(), rie.____jaxb_ri____getLocalName()));
}
child.onEndAttributes(sti, null);
if (!acceptor.stepForward(child, null)) {
// generated by XJC.
throw new JAXBAssertionError();
}
// we need a separate validator instance to validate a child object
context.validate(vo);
}
use of com.sun.msv.util.StringRef in project OpenAM by OpenRock.
the class MSVValidator method childAsElementBody.
private void childAsElementBody(Object o, ValidatableObject vo) throws SAXException {
String intfName = vo.getPrimaryInterface().getName();
intfName = intfName.replace('$', '.');
// if the object implements the RIElement interface,
// add a marker attribute to the dummy element.
//
// For example, if the object is org.acme.impl.FooImpl,
// the dummy element will look like
// <{DUMMY_ELEMENT_NS}org.acme.Foo
// {<URI of this element>}:<local name of this element>="" />
//
// This extra attribute is used to validate wildcards.
// AttributesImpl atts;
// if(o instanceof RIElement) {
// RIElement rie = (RIElement)o;
// atts = new AttributesImpl();
// atts.addAttribute(
// rie.____jaxb_ri____getNamespaceURI(),
// rie.____jaxb_ri____getLocalName(),
// rie.____jaxb_ri____getLocalName(), // use local name as qname
// "CDATA",
// ""); // we don't care about the attribute value
// } else
// atts = emptyAttributes;
// feed a dummy element to the acceptor.
StartTagInfo sti = new StartTagInfo(DUMMY_ELEMENT_NS, intfName, intfName, /*just pass the local name as QName.*/
emptyAttributes, this);
Acceptor child = acceptor.createChildAcceptor(sti, null);
if (child == null) {
// some required elements were missing. report errors
StringRef ref = new StringRef();
child = acceptor.createChildAcceptor(sti, ref);
context.reportEvent(target, ref.str);
}
if (o instanceof RIElement) {
RIElement rie = (RIElement) o;
if (!child.onAttribute2(rie.____jaxb_ri____getNamespaceURI(), rie.____jaxb_ri____getLocalName(), rie.____jaxb_ri____getLocalName(), "", null, null, null))
// this object is not a valid member of the wildcard
context.reportEvent(target, Messages.format(Messages.INCORRECT_CHILD_FOR_WILDCARD, rie.____jaxb_ri____getNamespaceURI(), rie.____jaxb_ri____getLocalName()));
}
child.onEndAttributes(sti, null);
if (!acceptor.stepForward(child, null)) {
// generated by XJC.
throw new JAXBAssertionError();
}
// we need a separate validator instance to validate a child object
context.validate(vo);
}
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();
}
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 _validate.
/** performs the validation to the object specified in the constructor. */
private void _validate() throws SAXException {
context.getNamespaceContext().startElement();
// validate attributes
target.serializeURIs(this);
endNamespaceDecls();
target.serializeAttributes(this);
endAttributes();
// validate content model
target.serializeBody(this);
writePendingText();
context.getNamespaceContext().endElement();
if (!acceptor.isAcceptState(null)) {
// some elements are missing
// report error
StringRef ref = new StringRef();
acceptor.isAcceptState(ref);
context.reportEvent(target, ref.str);
}
}
Aggregations