Java Code Examples for javax.xml.transform.Transformer#getErrorListener()

The following examples show how to use javax.xml.transform.Transformer#getErrorListener() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: jdk1.8-source-analysis   File: ToStream.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Sets the character encoding coming from the xsl:output encoding stylesheet attribute.
 * @param encoding the character encoding
 */
public void setEncoding(String encoding)
{
    String old = getEncoding();
    super.setEncoding(encoding);
    if (old == null || !old.equals(encoding)) {
       // If we have changed the setting of the
       m_encodingInfo = Encodings.getEncodingInfo(encoding);

       if (encoding != null && m_encodingInfo.name == null) {
           // We tried to get an EncodingInfo for Object for the given
           // encoding, but it came back with an internall null name
           // so the encoding is not supported by the JDK, issue a message.
           String msg = Utils.messages.createMessage(
                           MsgKey.ER_ENCODING_NOT_SUPPORTED,new Object[]{ encoding });
           try
           {
                   // Prepare to issue the warning message
                   Transformer tran = super.getTransformer();
                   if (tran != null) {
                           ErrorListener errHandler = tran.getErrorListener();
                           // Issue the warning message
                           if (null != errHandler && m_sourceLocator != null)
                                   errHandler.warning(new TransformerException(msg, m_sourceLocator));
                           else
                                   System.out.println(msg);
               }
                   else
                           System.out.println(msg);
           }
           catch (Exception e){}
       }
    }
    return;
}
 
Example 2
/**
 * This method checks for the XML version of output document.
 * If XML version of output document is not specified, then output
 * document is of version XML 1.0.
 * If XML version of output doucment is specified, but it is not either
 * XML 1.0 or XML 1.1, a warning message is generated, the XML Version of
 * output document is set to XML 1.0 and processing continues.
 * @return string (XML version)
 */
private String getXMLVersion()
{
    String xmlVersion = getVersion();
    if(xmlVersion == null || xmlVersion.equals(XMLVERSION10))
    {
        xmlVersion = XMLVERSION10;
    }
    else if(xmlVersion.equals(XMLVERSION11))
    {
        xmlVersion = XMLVERSION11;
    }
    else
    {
        String msg = Utils.messages.createMessage(
                           MsgKey.ER_XML_VERSION_NOT_SUPPORTED,new Object[]{ xmlVersion });
        try
        {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();
            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
                errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
                System.out.println(msg);
        }
        catch (Exception e){}
        xmlVersion = XMLVERSION10;
    }
    return xmlVersion;
}
 
Example 3
/**
 * Sets the character encoding coming from the xsl:output encoding stylesheet attribute.
 * @param encoding the character encoding
 */
public void setEncoding(String encoding)
{
    String old = getEncoding();
    super.setEncoding(encoding);
    if (old == null || !old.equals(encoding)) {
       // If we have changed the setting of the
       m_encodingInfo = Encodings.getEncodingInfo(encoding);

       if (encoding != null && m_encodingInfo.name == null) {
           // We tried to get an EncodingInfo for Object for the given
           // encoding, but it came back with an internall null name
           // so the encoding is not supported by the JDK, issue a message.
           String msg = Utils.messages.createMessage(
                           MsgKey.ER_ENCODING_NOT_SUPPORTED,new Object[]{ encoding });
           try
           {
                   // Prepare to issue the warning message
                   Transformer tran = super.getTransformer();
                   if (tran != null) {
                           ErrorListener errHandler = tran.getErrorListener();
                           // Issue the warning message
                           if (null != errHandler && m_sourceLocator != null)
                                   errHandler.warning(new TransformerException(msg, m_sourceLocator));
                           else
                                   System.out.println(msg);
               }
                   else
                           System.out.println(msg);
           }
           catch (Exception e){}
       }
    }
    return;
}
 
Example 4
/**
 * This method checks for the XML version of output document.
 * If XML version of output document is not specified, then output
 * document is of version XML 1.0.
 * If XML version of output doucment is specified, but it is not either
 * XML 1.0 or XML 1.1, a warning message is generated, the XML Version of
 * output document is set to XML 1.0 and processing continues.
 * @return string (XML version)
 */
private String getXMLVersion()
{
    String xmlVersion = getVersion();
    if(xmlVersion == null || xmlVersion.equals(XMLVERSION10))
    {
        xmlVersion = XMLVERSION10;
    }
    else if(xmlVersion.equals(XMLVERSION11))
    {
        xmlVersion = XMLVERSION11;
    }
    else
    {
        String msg = Utils.messages.createMessage(
                           MsgKey.ER_XML_VERSION_NOT_SUPPORTED,new Object[]{ xmlVersion });
        try
        {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();
            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
                errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
                System.out.println(msg);
        }
        catch (Exception e){}
        xmlVersion = XMLVERSION10;
    }
    return xmlVersion;
}
 
Example 5
Source Project: hottub   File: ToStream.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Sets the character encoding coming from the xsl:output encoding stylesheet attribute.
 * @param encoding the character encoding
 */
public void setEncoding(String encoding)
{
    String old = getEncoding();
    super.setEncoding(encoding);
    if (old == null || !old.equals(encoding)) {
       // If we have changed the setting of the
       m_encodingInfo = Encodings.getEncodingInfo(encoding);

       if (encoding != null && m_encodingInfo.name == null) {
           // We tried to get an EncodingInfo for Object for the given
           // encoding, but it came back with an internall null name
           // so the encoding is not supported by the JDK, issue a message.
           String msg = Utils.messages.createMessage(
                           MsgKey.ER_ENCODING_NOT_SUPPORTED,new Object[]{ encoding });
           try
           {
                   // Prepare to issue the warning message
                   Transformer tran = super.getTransformer();
                   if (tran != null) {
                           ErrorListener errHandler = tran.getErrorListener();
                           // Issue the warning message
                           if (null != errHandler && m_sourceLocator != null)
                                   errHandler.warning(new TransformerException(msg, m_sourceLocator));
                           else
                                   System.out.println(msg);
               }
                   else
                           System.out.println(msg);
           }
           catch (Exception e){}
       }
    }
    return;
}
 
Example 6
/**
 * This method checks for the XML version of output document.
 * If XML version of output document is not specified, then output
 * document is of version XML 1.0.
 * If XML version of output doucment is specified, but it is not either
 * XML 1.0 or XML 1.1, a warning message is generated, the XML Version of
 * output document is set to XML 1.0 and processing continues.
 * @return string (XML version)
 */
private String getXMLVersion()
{
    String xmlVersion = getVersion();
    if(xmlVersion == null || xmlVersion.equals(XMLVERSION10))
    {
        xmlVersion = XMLVERSION10;
    }
    else if(xmlVersion.equals(XMLVERSION11))
    {
        xmlVersion = XMLVERSION11;
    }
    else
    {
        String msg = Utils.messages.createMessage(
                           MsgKey.ER_XML_VERSION_NOT_SUPPORTED,new Object[]{ xmlVersion });
        try
        {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();
            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
                errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
                System.out.println(msg);
        }
        catch (Exception e){}
        xmlVersion = XMLVERSION10;
    }
    return xmlVersion;
}
 
Example 7
/**
 * This method checks for the XML version of output document.
 * If XML version of output document is not specified, then output
 * document is of version XML 1.0.
 * If XML version of output doucment is specified, but it is not either
 * XML 1.0 or XML 1.1, a warning message is generated, the XML Version of
 * output document is set to XML 1.0 and processing continues.
 * @return string (XML version)
 */
private String getXMLVersion()
{
    String xmlVersion = getVersion();
    if(xmlVersion == null || xmlVersion.equals(XMLVERSION10))
    {
        xmlVersion = XMLVERSION10;
    }
    else if(xmlVersion.equals(XMLVERSION11))
    {
        xmlVersion = XMLVERSION11;
    }
    else
    {
        String msg = Utils.messages.createMessage(
                           MsgKey.ER_XML_VERSION_NOT_SUPPORTED,new Object[]{ xmlVersion });
        try
        {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();
            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
                errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
                System.out.println(msg);
        }
        catch (Exception e){}
        xmlVersion = XMLVERSION10;
    }
    return xmlVersion;
}
 
Example 8
/**
 * Sets the character encoding coming from the xsl:output encoding stylesheet attribute.
 * @param encoding the character encoding
 */
public void setEncoding(String encoding)
{
    String old = getEncoding();
    super.setEncoding(encoding);
    if (old == null || !old.equals(encoding)) {
       // If we have changed the setting of the
       m_encodingInfo = Encodings.getEncodingInfo(encoding);

       if (encoding != null && m_encodingInfo.name == null) {
           // We tried to get an EncodingInfo for Object for the given
           // encoding, but it came back with an internall null name
           // so the encoding is not supported by the JDK, issue a message.
           String msg = Utils.messages.createMessage(
                           MsgKey.ER_ENCODING_NOT_SUPPORTED,new Object[]{ encoding });
           try
           {
                   // Prepare to issue the warning message
                   Transformer tran = super.getTransformer();
                   if (tran != null) {
                           ErrorListener errHandler = tran.getErrorListener();
                           // Issue the warning message
                           if (null != errHandler && m_sourceLocator != null)
                                   errHandler.warning(new TransformerException(msg, m_sourceLocator));
                           else
                                   System.out.println(msg);
               }
                   else
                           System.out.println(msg);
           }
           catch (Exception e){}
       }
    }
    return;
}
 
Example 9
/**
 * This method checks for the XML version of output document.
 * If XML version of output document is not specified, then output
 * document is of version XML 1.0.
 * If XML version of output doucment is specified, but it is not either
 * XML 1.0 or XML 1.1, a warning message is generated, the XML Version of
 * output document is set to XML 1.0 and processing continues.
 * @return string (XML version)
 */
private String getXMLVersion()
{
    String xmlVersion = getVersion();
    if(xmlVersion == null || xmlVersion.equals(XMLVERSION10))
    {
        xmlVersion = XMLVERSION10;
    }
    else if(xmlVersion.equals(XMLVERSION11))
    {
        xmlVersion = XMLVERSION11;
    }
    else
    {
        String msg = Utils.messages.createMessage(
                           MsgKey.ER_XML_VERSION_NOT_SUPPORTED,new Object[]{ xmlVersion });
        try
        {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();
            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
                errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
                System.out.println(msg);
        }
        catch (Exception e){}
        xmlVersion = XMLVERSION10;
    }
    return xmlVersion;
}
 
Example 10
Source Project: j2objc   File: ToXMLStream.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * This method checks for the XML version of output document.
 * If XML version of output document is not specified, then output 
 * document is of version XML 1.0.
 * If XML version of output doucment is specified, but it is not either 
 * XML 1.0 or XML 1.1, a warning message is generated, the XML Version of
 * output document is set to XML 1.0 and processing continues.
 * @return string (XML version)
 */
private String getXMLVersion()
{
    String xmlVersion = getVersion();
    if(xmlVersion == null || xmlVersion.equals(XMLVERSION10))
    {
        xmlVersion = XMLVERSION10;
    }
    else if(xmlVersion.equals(XMLVERSION11))
    {
        xmlVersion = XMLVERSION11;
    }
    else
    {
        String msg = Utils.messages.createMessage(
                           MsgKey.ER_XML_VERSION_NOT_SUPPORTED,new Object[]{ xmlVersion });
        try 
        {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();
            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
                errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
                System.out.println(msg);
        }
        catch (Exception e){}
        xmlVersion = XMLVERSION10;								
    }
    return xmlVersion;
}
 
Example 11
Source Project: Bytecoder   File: ToXMLStream.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * This method checks for the XML version of output document.
 * If XML version of output document is not specified, then output
 * document is of version XML 1.0.
 * If XML version of output doucment is specified, but it is not either
 * XML 1.0 or XML 1.1, a warning message is generated, the XML Version of
 * output document is set to XML 1.0 and processing continues.
 * @return string (XML version)
 */
private String getXMLVersion()
{
    String xmlVersion = getVersion();
    if(xmlVersion == null || xmlVersion.equals(XMLVERSION10))
    {
        xmlVersion = XMLVERSION10;
    }
    else if(xmlVersion.equals(XMLVERSION11))
    {
        xmlVersion = XMLVERSION11;
    }
    else
    {
        String msg = Utils.messages.createMessage(
                           MsgKey.ER_XML_VERSION_NOT_SUPPORTED,new Object[]{ xmlVersion });
        try
        {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();
            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
                errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
                System.out.println(msg);
        }
        catch (Exception e){}
        xmlVersion = XMLVERSION10;
    }
    return xmlVersion;
}
 
Example 12
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}
 
Example 13
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}
 
Example 14
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}
 
Example 15
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}
 
Example 16
Source Project: j2objc   File: ToXMLStream.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
        

        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (TransformerException e){
            // A user defined error handler, errHandler, may throw
            // a TransformerException if it chooses to, and if it does
            // we will wrap it with a SAXException and re-throw.
            // Of course if the handler throws another type of
            // exception, like a RuntimeException, then that is OK too.
            SAXException se = new SAXException(e);
            throw se;                
        }             
    }
}
 
Example 17
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}
 
Example 18
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}
 
Example 19
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}
 
Example 20
Source Project: Bytecoder   File: ToXMLStream.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Add an attribute to the current element.
 * @param uri the URI associated with the element name
 * @param localName local part of the attribute name
 * @param rawName   prefix:localName
 * @param type
 * @param value the value of the attribute
 * @param xslAttribute true if this attribute is from an xsl:attribute,
 * false if declared within the elements opening tag.
 * @throws SAXException
 */
public void addAttribute(
    String uri,
    String localName,
    String rawName,
    String type,
    String value,
    boolean xslAttribute)
    throws SAXException
{
    if (m_elemContext.m_startTagOpen)
    {
        boolean was_added = addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);


        /*
         * We don't run this block of code if:
         * 1. The attribute value was only replaced (was_added is false).
         * 2. The attribute is from an xsl:attribute element (that is handled
         *    in the addAttributeAlways() call just above.
         * 3. The name starts with "xmlns", i.e. it is a namespace declaration.
         */
        if (was_added && !xslAttribute && !rawName.startsWith("xmlns"))
        {
            String prefixUsed =
                ensureAttributesNamespaceIsDeclared(
                    uri,
                    localName,
                    rawName);
            if (prefixUsed != null
                && rawName != null
                && !rawName.startsWith(prefixUsed))
            {
                // use a different raw name, with the prefix used in the
                // generated namespace declaration
                rawName = prefixUsed + ":" + localName;

            }
        }
        addAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
    }
    else
    {
        /*
         * The startTag is closed, yet we are adding an attribute?
         *
         * Section: 7.1.3 Creating Attributes Adding an attribute to an
         * element after a PI (for example) has been added to it is an
         * error. The attributes can be ignored. The spec doesn't explicitly
         * say this is disallowed, as it does for child elements, but it
         * makes sense to have the same treatment.
         *
         * We choose to ignore the attribute which is added too late.
         */
        // Generate a warning of the ignored attributes

        // Create the warning message
        String msg = Utils.messages.createMessage(
                MsgKey.ER_ILLEGAL_ATTRIBUTE_POSITION,new Object[]{ localName });

        try {
            // Prepare to issue the warning message
            Transformer tran = super.getTransformer();
            ErrorListener errHandler = tran.getErrorListener();


            // Issue the warning message
            if (null != errHandler && m_sourceLocator != null)
              errHandler.warning(new TransformerException(msg, m_sourceLocator));
            else
              System.out.println(msg);
            }
        catch (Exception e){}
    }
}