public AssignationSequence parseAssignationSequence(
     final Arguments arguments, final String input, final boolean allowParametersWithoutValue) {
   Validate.notNull(arguments, "Arguments cannot be null");
   Validate.notNull(input, "Input cannot be null");
   return parseAssignationSequence(
       arguments, DOMUtils.unescapeXml(input, true), true, allowParametersWithoutValue);
 }
    @Override
    public void startElement(
        final String uri, final String localName, final String qName, final Attributes attributes)
        throws SAXException {

      if (!this.xmlDeclarationComputed) {

        // SAX specification says the "getEncoding()" method in Locator2 can only
        // be called AFTER startDocument has returned and BEFORE endDocument is called.

        if (this.locator != null && this.locator instanceof Locator2) {

          final Locator2 loc = (Locator2) this.locator;

          this.xmlVersion = loc.getXMLVersion();
          this.xmlEncoding = loc.getEncoding();

          // There seems to be no way of obtaining the "standalone" property
          // from the XML declaration.

        }

        this.xmlDeclarationComputed = true;
      }

      flushBuffer();

      Integer lineNumber = null;
      if (this.locator != null) {
        lineNumber = Integer.valueOf(this.locator.getLineNumber());
      }

      final Element element = new Element(qName, this.documentName, lineNumber);

      for (int i = 0; i < attributes.getLength(); i++) {
        element.setAttribute(
            attributes.getQName(i),
            DOMUtils.unescapeXml(
                TemplatePreprocessingReader.removeEntitySubstitutions(attributes.getValue(i)),
                true));
      }

      this.elementStack.push(element);
    }
 public FragmentSelection parseFragmentSelection(final Arguments arguments, final String input) {
   Validate.notNull(arguments, "Arguments cannot be null");
   Validate.notNull(input, "Input cannot be null");
   return parseFragmentSelection(arguments, DOMUtils.unescapeXml(input, true), true);
 }
 public Each parseEach(final Arguments arguments, final String input) {
   Validate.notNull(arguments, "Arguments cannot be null");
   Validate.notNull(input, "Input cannot be null");
   return parseEach(arguments, DOMUtils.unescapeXml(input, true), true);
 }
 public ExpressionSequence parseExpressionSequence(final Arguments arguments, final String input) {
   Validate.notNull(arguments, "Arguments cannot be null");
   Validate.notNull(input, "Input cannot be null");
   return parseExpressionSequence(arguments, DOMUtils.unescapeXml(input, true), true);
 }