Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/dom/xslt/xslt/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 6 kB image not shown  

Quelle  txXMLEventHandler.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef TRANSFRMX_XML_EVENT_HANDLER_H
#define TRANSFRMX_XML_EVENT_HANDLER_H

#include "txCore.h"
#include "nsAtom.h"

#define kTXNameSpaceURI u"http://www.mozilla.org/TransforMiix"
#define kTXWrapper "transformiix:result"

class txOutputFormat;
namespace mozilla::dom {
class Document;
}  // namespace mozilla::dom

/**
 * An interface for handling XML documents, loosely modeled
 * after Dave Megginson's SAX 1.0 API.
 */


class txAXMLEventHandler {
 public:
  virtual ~txAXMLEventHandler() = default;

  /**
   * Signals to receive the start of an attribute.
   *
   * @param aPrefix the prefix of the attribute
   * @param aLocalName the localname of the attribute
   * @param aLowercaseName the localname of the attribute in lower case
   * @param aNsID the namespace ID of the attribute
   * @param aValue the value of the attribute
   */

  virtual nsresult attribute(nsAtom* aPrefix, nsAtom* aLocalName,
                             nsAtom* aLowercaseLocalName, int32_t aNsID,
                             const nsString& aValue) = 0;

  /**
   * Signals to receive the start of an attribute.
   *
   * @param aPrefix the prefix of the attribute
   * @param aLocalName the localname of the attribute
   * @param aNsID the namespace ID of the attribute
   * @param aValue the value of the attribute
   */

  virtual nsresult attribute(nsAtom* aPrefix, const nsAString& aLocalName,
                             const int32_t aNsID, const nsString& aValue) = 0;

  /**
   * Signals to receive characters.
   *
   * @param aData the characters to receive
   * @param aDOE disable output escaping for these characters
   */

  virtual nsresult characters(const nsAString& aData, bool aDOE) = 0;

  /**
   * Signals to receive data that should be treated as a comment.
   *
   * @param data the comment data to receive
   */

  virtual nsresult comment(const nsString& aData) = 0;

  /**
   * Signals the end of a document. It is an error to call
   * this method more than once.
   */

  virtual nsresult endDocument(nsresult aResult) = 0;

  /**
   * Signals to receive the end of an element.
   */

  virtual nsresult endElement() = 0;

  /**
   * Signals to receive a processing instruction.
   *
   * @param aTarget the target of the processing instruction
   * @param aData the data of the processing instruction
   */

  virtual nsresult processingInstruction(const nsString& aTarget,
                                         const nsString& aData) = 0;

  /**
   * Signals the start of a document.
   */

  virtual nsresult startDocument() = 0;

  /**
   * Signals to receive the start of an element.
   *
   * @param aPrefix the prefix of the element
   * @param aLocalName the localname of the element
   * @param aLowercaseName the localname of the element in lower case
   * @param aNsID the namespace ID of the element
   */

  virtual nsresult startElement(nsAtom* aPrefix, nsAtom* aLocalName,
                                nsAtom* aLowercaseLocalName, int32_t aNsID) = 0;

  /**
   * Signals to receive the start of an element. Can throw
   * NS_ERROR_XSLT_BAD_NODE_NAME if the name is invalid
   *
   * @param aPrefix the prefix of the element
   * @param aLocalName the localname of the element
   * @param aNsID the namespace ID of the element
   */

  virtual nsresult startElement(nsAtom* aPrefix, const nsAString& aLocalName,
                                const int32_t aNsID) = 0;
};

#define TX_DECL_TXAXMLEVENTHANDLER                                          \
  virtual nsresult attribute(nsAtom* aPrefix, nsAtom* aLocalName,           \
                             nsAtom* aLowercaseLocalName, int32_t aNsID,    \
                             const nsString& aValue) override;              \
  virtual nsresult attribute(nsAtom* aPrefix, const nsAString& aLocalName,  \
                             const int32_t aNsID, const nsString& aValue)   \
      override;                                                             \
  virtual nsresult characters(const nsAString& aData, bool aDOE) override;  \
  virtual nsresult comment(const nsString& aData) override;                 \
  virtual nsresult endDocument(nsresult aResult = NS_OK) override;          \
  virtual nsresult endElement() override;                                   \
  virtual nsresult processingInstruction(const nsString& aTarget,           \
                                         const nsString& aData) override;   \
  virtual nsresult startDocument() override;                                \
  virtual nsresult startElement(nsAtom* aPrefix, nsAtom* aLocalName,        \
                                nsAtom* aLowercaseLocalName, int32_t aNsID) \
      override;                                                             \
  virtual nsresult startElement(nsAtom* aPrefix, const nsAString& aName,    \
                                const int32_t aNsID) override;

class txAOutputXMLEventHandler : public txAXMLEventHandler {
 public:
  /**
   * Gets the Mozilla output document
   *
   * @param aDocument the Mozilla output document
   */

  virtual void getOutputDocument(mozilla::dom::Document** aDocument) = 0;
};

#define TX_DECL_TXAOUTPUTXMLEVENTHANDLER \
  virtual void getOutputDocument(mozilla::dom::Document** aDocument) override;

/**
 * Interface used to create the appropriate outputhandler
 */

class txAOutputHandlerFactory {
 public:
  virtual ~txAOutputHandlerFactory() = default;

  /**
   * Creates an outputhandler for the specified format.
   * @param aFromat  format to get handler for
   * @param aHandler outparam. The created handler
   */

  virtual nsresult createHandlerWith(txOutputFormat* aFormat,
                                     txAXMLEventHandler** aHandler) = 0;

  /**
   * Creates an outputhandler for the specified format, with the specified
   * name and namespace for the root element.
   * @param aFromat  format to get handler for
   * @param aName    name of the root element
   * @param aNsID    namespace-id of the root element
   * @param aHandler outparam. The created handler
   */

  virtual nsresult createHandlerWith(txOutputFormat* aFormat,
                                     const nsAString& aName, int32_t aNsID,
                                     txAXMLEventHandler** aHandler) = 0;
};

#define TX_DECL_TXAOUTPUTHANDLERFACTORY                                       \
  nsresult createHandlerWith(txOutputFormat* aFormat,                         \
                             txAXMLEventHandler** aHandler) override;         \
  nsresult createHandlerWith(txOutputFormat* aFormat, const nsAString& aName, \
                             int32_t aNsID, txAXMLEventHandler** aHandler)    \
      override;

#endif

Messung V0.5
C=96 H=96 G=95

¤ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.