namespace Poco::XML

namespace XML {

// typedefs

typedef std::istream XMLByteInputStream;
typedef std::ostream XMLByteOutputStream;
typedef std::istream XMLCharInputStream;
typedef std::ostream XMLCharOutputStream;
typedef char XMLChar;
typedef std::string XMLString;

// classes

class AbstractContainerNode;
class AbstractNode;
class Attr;
class AttrMap;
class Attributes;
class AttributesImpl;
class CDATASection;
class CharacterData;
class ChildNodesList;
class Comment;
class ContentHandler;
class DOMBuilder;
class DOMException;
class DOMImplementation;
class DOMObject;
class DOMParser;
class DOMSerializer;
class DOMWriter;
class DTDHandler;
class DTDMap;
class DeclHandler;
class DefaultHandler;
class Document;
class DocumentEvent;
class DocumentFragment;
class DocumentType;
class Element;
class ElementsByTagNameList;
class ElementsByTagNameListNS;
class Entity;
class EntityReference;
class EntityResolver;
class EntityResolverImpl;
class ErrorHandler;
class Event;
class EventDispatcher;
class EventException;
class EventListener;
class EventTarget;
class InputSource;
class LexicalHandler;
class Locator;
class LocatorImpl;
class MutationEvent;
class Name;
class NamePool;
class NamedNodeMap;
class NamespacePrefixesStrategy;
class NamespaceStrategy;
class NamespaceSupport;
class NoNamespacePrefixesStrategy;
class NoNamespacesStrategy;
class Node;
class NodeAppender;
class NodeFilter;
class NodeIterator;
class NodeList;
class Notation;
class ParserEngine;
class ProcessingInstruction;
class SAXParseException;
class SAXParser;
class Text;
class TreeWalker;
class WhitespaceFilter;
class XMLFilter;
class XMLFilterImpl;
class XMLReader;
class XMLWriter;

// global functions

void
swap(
    Name& n1,
    Name& n2
    );

const std::string&
fromXMLString(const XMLString& str);

const XMLString&
toXMLString(const std::string& str);

} // namespace XML