use of com.sun.msv.verifier.Acceptor 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.verifier.Acceptor 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.verifier.Acceptor 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.verifier.Acceptor 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.verifier.Acceptor 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);
}
Aggregations