net.sf.saxon.serialize

## Class AttributeSorter

- java.lang.Object
- - net.sf.saxon.event.SequenceReceiver
  - - net.sf.saxon.event.ProxyReceiver
    - - net.sf.saxon.serialize.AttributeSorter

- All Implemented Interfaces:
    Result, Receiver, Sortable

      public class AttributeSorter
      extends ProxyReceiver
      implements Sortable

  AttributeSorter: This filter sorts attributes into the order requested using the saxon:attribute-order serialization property
  Author:
    Michael Kay

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.event.ProxyReceiver

      `nextReceiver`

    - ### Fields inherited from class net.sf.saxon.event.SequenceReceiver

      `pipelineConfiguration, previousAtomic, systemId`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AttributeSorter(Receiver next)` Create a CDATA Filter

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `attribute(NodeName nameCode, SimpleType typeCode, CharSequence value, int locationId, int properties)` Notify an attribute.
    `int` | `compare(int a, int b)` Compare two objects within this Sortable, identified by their position.
    `void` | `setOutputProperties(Properties details)` Set the properties for this CDATA filter
    `void` | `startContent()` Notify the start of the content, that is, the completion of all attributes and namespaces.
    `void` | `startElement(NodeName elemName, SchemaType typeCode, int locationId, int properties)` Notify the start of an element
    `void` | `swap(int a, int b)` Swap two objects within this Sortable, identified by their position.

    - ### Methods inherited from class net.sf.saxon.event.ProxyReceiver

      `append, characters, close, comment, endDocument, endElement, getNamePool, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument, usesTypeAnnotations`

    - ### Methods inherited from class net.sf.saxon.event.SequenceReceiver

      `append, getConfiguration, getPipelineConfiguration, getSystemId`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AttributeSorter

          public AttributeSorter(Receiver next)

      Create a CDATA Filter
      Parameters:
        `next` - the next receiver in the pipeline

  - ### Method Detail

    - #### setOutputProperties

          public void setOutputProperties(Properties details)
                                   throws XPathException

      Set the properties for this CDATA filter
      Parameters:
        `details` - the output properties
      Throws:
        `XPathException` - if an error occurs

    - #### startElement

          public void startElement(NodeName elemName,
                          SchemaType typeCode,
                          int locationId,
                          int properties)
                            throws XPathException

      Notify the start of an element
      Specified by:
        `startElement` in interface `Receiver`
      Overrides:
        `startElement` in class `ProxyReceiver`
      Parameters:
        `elemName` - integer code identifying the name of the element within the name pool.
        `typeCode` - integer code identifying the element's type within the name pool.
        `properties` - properties of the element node
        `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
      Throws:
        `XPathException` - if an error occurs

    - #### attribute

          public void attribute(NodeName nameCode,
                       SimpleType typeCode,
                       CharSequence value,
                       int locationId,
                       int properties)
                         throws XPathException

      Notify an attribute. Attributes are notified after the startElement event, and before any children. Namespaces and attributes may be intermingled.
      Specified by:
        `attribute` in interface `Receiver`
      Overrides:
        `attribute` in class `ProxyReceiver`
      Parameters:
        `nameCode` - The name of the attribute, as held in the name pool
        `typeCode` - The type of the attribute, as held in the name pool
        `properties` - Bit significant value. The following bits are defined:
        DISABLE_ESCAPING
      Disable escaping for this attribute
        NO_SPECIAL_CHARACTERS
      Attribute value contains no special characters
        `value` - the string value of the attribute
        `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
      Throws:
        `IllegalStateException:` - attempt to output an attribute when there is no open element start tag
        `XPathException` - if an error occurs

    - #### startContent

          public void startContent()
                            throws XPathException

      Notify the start of the content, that is, the completion of all attributes and namespaces. Note that the initial receiver of output from XSLT instructions will not receive this event, it has to detect it itself. Note that this event is reported for every element even if it has no attributes, no namespaces, and no content.
      Specified by:
        `startContent` in interface `Receiver`
      Overrides:
        `startContent` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs

    - #### compare

          public int compare(int a,
                    int b)

      Compare two objects within this Sortable, identified by their position.
      Specified by:
        `compare` in interface `Sortable`
      Returns:
        <0 if obj[a]0 if obj[a]>obj[b]

    - #### swap

          public void swap(int a,
                  int b)

      Swap two objects within this Sortable, identified by their position.
      Specified by:
        `swap` in interface `Sortable`

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.