Search in sources :

Example 6 with StringRef

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;
}
Also used : Acceptor(com.sun.msv.verifier.Acceptor) StartTagInfo(com.sun.msv.util.StartTagInfo) StringRef(com.sun.msv.util.StringRef)

Example 7 with StringRef

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);
}
Also used : StringRef(com.sun.msv.util.StringRef)

Example 8 with StringRef

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;
}
Also used : Acceptor(com.sun.msv.verifier.Acceptor) StartTagInfo(com.sun.msv.util.StartTagInfo) StringRef(com.sun.msv.util.StringRef)

Example 9 with StringRef

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);
}
Also used : StringRef(com.sun.msv.util.StringRef)

Example 10 with StringRef

use of com.sun.msv.util.StringRef in project Payara by payara.

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);
}
Also used : Acceptor(com.sun.msv.verifier.Acceptor) JAXBAssertionError(com.sun.xml.bind.JAXBAssertionError) RIElement(com.sun.xml.bind.RIElement) StartTagInfo(com.sun.msv.util.StartTagInfo) StringRef(com.sun.msv.util.StringRef)

Aggregations

StringRef (com.sun.msv.util.StringRef)35 StartTagInfo (com.sun.msv.util.StartTagInfo)15 Acceptor (com.sun.msv.verifier.Acceptor)15 JAXBAssertionError (com.sun.xml.bind.JAXBAssertionError)5 RIElement (com.sun.xml.bind.RIElement)5