5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk//
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.6-b27-fcs
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk// Any modifications to this file will be lost upon recompilation of the source schema.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk// Generated on: 2012.06.11 at 10:34:07 AM PDT
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk//
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkpackage com.sun.identity.saml2.jaxb.assertion.impl.runtime;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkimport javax.xml.namespace.NamespaceContext;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk/**
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * Maintains namespace&lt;->prefix bindings.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * <p>
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk * This interface extends {@link NamespaceContext} and provides
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * an additional functionality, which is necessary to declare
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * namespaced attributes on elements. The added method is for
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * self-consumption by the marshaller.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * This object is composed into a Serializer.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk */
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkpublic interface NamespaceContext2 extends NamespaceContext
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk{
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk /**
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * Declares a new namespace binding within the current context.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * <p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * The prefix is automatically assigned by MarshallingContext. If
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * a given namespace URI is already declared, nothing happens.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * <p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * It is <b>NOT</b> an error to declare the same namespace URI
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * more than once.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * <p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * For marshalling to work correctly, all namespace bindings
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * for an element must be declared between its startElement method and
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * its endAttributes event. Calling the same method with the same
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * parameter between the endAttributes and the endElement returns
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * the same prefix.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * @param requirePrefix
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * If this parameter is true, this method must assign a prefix
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * to this namespace, even if it's already bound to the default
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * namespace. IOW, this method will never return null if this
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * flag is true. This functionality is necessary to declare
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * namespace URI used for attribute names.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * @param preferedPrefix
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * If the caller has any particular preference to the
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * prefix, pass that as a parameter. The callee will try
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * to honor it. Set null if there's no particular preference.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * @return
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * returns the assigned prefix. If the namespace is bound to
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk * the default namespace, null is returned.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk */
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk String declareNamespace( String namespaceUri, String preferedPrefix, boolean requirePrefix );
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk}