// Copyright (c) 2005-2014 Code Synthesis Tools CC
//
// This program was generated by CodeSynthesis XSD, an XML Schema to
// C++ data binding compiler.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
// In addition, as a special exception, Code Synthesis Tools CC gives
// permission to link this program with the Xerces-C++ library (or with
// modified versions of Xerces-C++ that use the same license as Xerces-C++),
// and distribute linked combinations including the two. You must obey
// the GNU General Public License version 2 in all respects for all of
// the code used other than Xerces-C++. If you modify this copy of the
// program, you may extend this exception to your version of the program,
// but you are not obligated to do so. If you do not wish to do so, delete
// this exception statement from your version.
//
// Furthermore, Code Synthesis Tools CC makes a special exception for
// the Free/Libre and Open Source Software (FLOSS) which is described
// in the accompanying FLOSSE file.
//

#ifndef XML_PIDF_OMA_PRES_HH
#define XML_PIDF_OMA_PRES_HH

#ifndef XSD_CXX11
#define XSD_CXX11
#endif

#ifndef XSD_USE_CHAR
#define XSD_USE_CHAR
#endif

#ifndef XSD_CXX_TREE_USE_CHAR
#define XSD_CXX_TREE_USE_CHAR
#endif

// Begin prologue.
//
#if __clang__ || __GNUC__ >= 4
	#pragma GCC diagnostic push
	#pragma GCC diagnostic ignored "-Wfloat-equal"
	#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
#ifndef __ANDROID__
	#pragma GCC diagnostic ignored "-Wsuggest-override"
#endif
#endif
//
// End prologue.

#include <xsd/cxx/config.hxx>

#if (XSD_INT_VERSION != 4000000L)
#error XSD runtime version mismatch
#endif

#include <xsd/cxx/pre.hxx>

#include <xsd/cxx/xml/char-utf8.hxx>

#include <xsd/cxx/tree/exceptions.hxx>
#include <xsd/cxx/tree/elements.hxx>
#include <xsd/cxx/tree/types.hxx>

#include <xsd/cxx/xml/error-handler.hxx>

#include <xsd/cxx/xml/dom/auto-ptr.hxx>

#include <xsd/cxx/tree/parsing.hxx>
#include <xsd/cxx/tree/parsing/byte.hxx>
#include <xsd/cxx/tree/parsing/unsigned-byte.hxx>
#include <xsd/cxx/tree/parsing/short.hxx>
#include <xsd/cxx/tree/parsing/unsigned-short.hxx>
#include <xsd/cxx/tree/parsing/int.hxx>
#include <xsd/cxx/tree/parsing/unsigned-int.hxx>
#include <xsd/cxx/tree/parsing/long.hxx>
#include <xsd/cxx/tree/parsing/unsigned-long.hxx>
#include <xsd/cxx/tree/parsing/boolean.hxx>
#include <xsd/cxx/tree/parsing/float.hxx>
#include <xsd/cxx/tree/parsing/double.hxx>
#include <xsd/cxx/tree/parsing/decimal.hxx>

#include <xsd/cxx/xml/dom/serialization-header.hxx>
#include <xsd/cxx/tree/serialization.hxx>
#include <xsd/cxx/tree/serialization/byte.hxx>
#include <xsd/cxx/tree/serialization/unsigned-byte.hxx>
#include <xsd/cxx/tree/serialization/short.hxx>
#include <xsd/cxx/tree/serialization/unsigned-short.hxx>
#include <xsd/cxx/tree/serialization/int.hxx>
#include <xsd/cxx/tree/serialization/unsigned-int.hxx>
#include <xsd/cxx/tree/serialization/long.hxx>
#include <xsd/cxx/tree/serialization/unsigned-long.hxx>
#include <xsd/cxx/tree/serialization/boolean.hxx>
#include <xsd/cxx/tree/serialization/float.hxx>
#include <xsd/cxx/tree/serialization/double.hxx>
#include <xsd/cxx/tree/serialization/decimal.hxx>

#include <xsd/cxx/tree/std-ostream-operators.hxx>

namespace flexisip
{
  namespace Xsd
  {
    namespace XmlSchema
    {
      // anyType and anySimpleType.
      //
      typedef ::xsd::cxx::tree::type Type;
      typedef ::xsd::cxx::tree::simple_type< char, Type > SimpleType;
      typedef ::xsd::cxx::tree::type Container;

      // 8-bit
      //
      typedef signed char Byte;
      typedef unsigned char UnsignedByte;

      // 16-bit
      //
      typedef short Short;
      typedef unsigned short UnsignedShort;

      // 32-bit
      //
      typedef int Int;
      typedef unsigned int UnsignedInt;

      // 64-bit
      //
      typedef long long Long;
      typedef unsigned long long UnsignedLong;

      // Supposed to be arbitrary-length integral types.
      //
      typedef long long Integer;
      typedef long long NonPositiveInteger;
      typedef unsigned long long NonNegativeInteger;
      typedef unsigned long long PositiveInteger;
      typedef long long NegativeInteger;

      // Boolean.
      //
      typedef bool Boolean;

      // Floating-point types.
      //
      typedef float Float;
      typedef double Double;
      typedef double Decimal;

      // String types.
      //
      typedef ::xsd::cxx::tree::string< char, SimpleType > String;
      typedef ::xsd::cxx::tree::normalized_string< char, String > NormalizedString;
      typedef ::xsd::cxx::tree::token< char, NormalizedString > Token;
      typedef ::xsd::cxx::tree::name< char, Token > Name;
      typedef ::xsd::cxx::tree::nmtoken< char, Token > Nmtoken;
      typedef ::xsd::cxx::tree::nmtokens< char, SimpleType, Nmtoken > Nmtokens;
      typedef ::xsd::cxx::tree::ncname< char, Name > Ncname;
      typedef ::xsd::cxx::tree::language< char, Token > Language;

      // ID/IDREF.
      //
      typedef ::xsd::cxx::tree::id< char, Ncname > Id;
      typedef ::xsd::cxx::tree::idref< char, Ncname, Type > Idref;
      typedef ::xsd::cxx::tree::idrefs< char, SimpleType, Idref > Idrefs;

      // URI.
      //
      typedef ::xsd::cxx::tree::uri< char, SimpleType > Uri;

      // Qualified name.
      //
      typedef ::xsd::cxx::tree::qname< char, SimpleType, Uri, Ncname > Qname;

      // Binary.
      //
      typedef ::xsd::cxx::tree::buffer< char > Buffer;
      typedef ::xsd::cxx::tree::base64_binary< char, SimpleType > Base64Binary;
      typedef ::xsd::cxx::tree::hex_binary< char, SimpleType > HexBinary;

      // Date/time.
      //
      typedef ::xsd::cxx::tree::time_zone TimeZone;
      typedef ::xsd::cxx::tree::date< char, SimpleType > Date;
      typedef ::xsd::cxx::tree::date_time< char, SimpleType > DateTime;
      typedef ::xsd::cxx::tree::duration< char, SimpleType > Duration;
      typedef ::xsd::cxx::tree::gday< char, SimpleType > Gday;
      typedef ::xsd::cxx::tree::gmonth< char, SimpleType > Gmonth;
      typedef ::xsd::cxx::tree::gmonth_day< char, SimpleType > GmonthDay;
      typedef ::xsd::cxx::tree::gyear< char, SimpleType > Gyear;
      typedef ::xsd::cxx::tree::gyear_month< char, SimpleType > GyearMonth;
      typedef ::xsd::cxx::tree::time< char, SimpleType > Time;

      // Entity.
      //
      typedef ::xsd::cxx::tree::entity< char, Ncname > Entity;
      typedef ::xsd::cxx::tree::entities< char, SimpleType, Entity > Entities;

      typedef ::xsd::cxx::tree::content_order ContentOrder;
      // Namespace information and list stream. Used in
      // serialization functions.
      //
      typedef ::xsd::cxx::xml::dom::namespace_info< char > NamespaceInfo;
      typedef ::xsd::cxx::xml::dom::namespace_infomap< char > NamespaceInfomap;
      typedef ::xsd::cxx::tree::list_stream< char > ListStream;
      typedef ::xsd::cxx::tree::as_double< Double > AsDouble;
      typedef ::xsd::cxx::tree::as_decimal< Decimal > AsDecimal;
      typedef ::xsd::cxx::tree::facet Facet;

      // Flags and properties.
      //
      typedef ::xsd::cxx::tree::flags Flags;
      typedef ::xsd::cxx::tree::properties< char > Properties;

      // Parsing/serialization diagnostics.
      //
      typedef ::xsd::cxx::tree::severity Severity;
      typedef ::xsd::cxx::tree::error< char > Error;
      typedef ::xsd::cxx::tree::diagnostics< char > Diagnostics;

      // Exceptions.
      //
      typedef ::xsd::cxx::tree::exception< char > Exception;
      typedef ::xsd::cxx::tree::bounds< char > Bounds;
      typedef ::xsd::cxx::tree::duplicate_id< char > DuplicateId;
      typedef ::xsd::cxx::tree::parsing< char > Parsing;
      typedef ::xsd::cxx::tree::expected_element< char > ExpectedElement;
      typedef ::xsd::cxx::tree::unexpected_element< char > UnexpectedElement;
      typedef ::xsd::cxx::tree::expected_attribute< char > ExpectedAttribute;
      typedef ::xsd::cxx::tree::unexpected_enumerator< char > UnexpectedEnumerator;
      typedef ::xsd::cxx::tree::expected_text_content< char > ExpectedTextContent;
      typedef ::xsd::cxx::tree::no_prefix_mapping< char > NoPrefixMapping;
      typedef ::xsd::cxx::tree::serialization< char > Serialization;

      // Error handler callback interface.
      //
      typedef ::xsd::cxx::xml::error_handler< char > ErrorHandler;

      // DOM interaction.
      //
      namespace dom
      {
        // Automatic pointer for DOMDocument.
        //
        using ::xsd::cxx::xml::dom::unique_ptr;

#ifndef XSD_CXX_TREE_TREE_NODE_KEY__FLEXISIP__XSD__XMLSCHEMA
#define XSD_CXX_TREE_TREE_NODE_KEY__FLEXISIP__XSD__XMLSCHEMA
        // DOM user data key for back pointers to tree nodes.
        //
        const XMLCh* const treeNodeKey = ::xsd::cxx::tree::user_data_keys::node;
#endif
      }
    }
  }
}

// Forward declarations.
//
namespace oma_pres
{
  class BasicType;
  class EmptyType;
  class RegistrationType;
  class BarringType;
  class ServiceDescription;
  class Willingness;
  class SessionParticipation;
  class RegistrationState;
  class BarringState;
  class OverridingWillingness;
  class NetworkAvailability;
  class Network;
}


#include <memory>    // ::std::unique_ptr
#include <limits>    // std::numeric_limits
#include <algorithm> // std::binary_search
#include <utility>   // std::move

#include <xsd/cxx/xml/char-utf8.hxx>

#include <xsd/cxx/tree/exceptions.hxx>
#include <xsd/cxx/tree/elements.hxx>
#include <xsd/cxx/tree/containers.hxx>
#include <xsd/cxx/tree/list.hxx>

#include <xsd/cxx/xml/dom/parsing-header.hxx>

#include <xsd/cxx/tree/containers-wildcard.hxx>

#include "xml.hh"

namespace oma_pres
{
  class BasicType: public ::flexisip::Xsd::XmlSchema::String
  {
    public:
    enum Value
    {
      open,
      closed
    };

    BasicType (Value v);

    BasicType (const char* v);

    BasicType (const ::std::string& v);

    BasicType (const ::flexisip::Xsd::XmlSchema::String& v);

    BasicType (const ::xercesc::DOMElement& e,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    BasicType (const ::xercesc::DOMAttr& a,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    BasicType (const ::std::string& s,
               const ::xercesc::DOMElement* e,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    BasicType (const BasicType& x,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual BasicType*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    BasicType&
    operator= (Value v);

    virtual
    operator Value () const
    {
      return _xsd_BasicType_convert ();
    }

    protected:
    Value
    _xsd_BasicType_convert () const;

    public:
    static const char* const _xsd_BasicType_literals_[2];
    static const Value _xsd_BasicType_indexes_[2];
  };

  class EmptyType: public ::flexisip::Xsd::XmlSchema::Type
  {
    public:
    // Constructors.
    //
    EmptyType ();

    EmptyType (const ::xercesc::DOMElement& e,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    EmptyType (const ::xercesc::DOMAttr& a,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    EmptyType (const ::std::string& s,
               const ::xercesc::DOMElement* e,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    EmptyType (const EmptyType& x,
               ::flexisip::Xsd::XmlSchema::Flags f = 0,
               ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual EmptyType*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    virtual 
    ~EmptyType ();
  };

  class RegistrationType: public ::flexisip::Xsd::XmlSchema::String
  {
    public:
    enum Value
    {
      active,
      terminated
    };

    RegistrationType (Value v);

    RegistrationType (const char* v);

    RegistrationType (const ::std::string& v);

    RegistrationType (const ::flexisip::Xsd::XmlSchema::String& v);

    RegistrationType (const ::xercesc::DOMElement& e,
                      ::flexisip::Xsd::XmlSchema::Flags f = 0,
                      ::flexisip::Xsd::XmlSchema::Container* c = 0);

    RegistrationType (const ::xercesc::DOMAttr& a,
                      ::flexisip::Xsd::XmlSchema::Flags f = 0,
                      ::flexisip::Xsd::XmlSchema::Container* c = 0);

    RegistrationType (const ::std::string& s,
                      const ::xercesc::DOMElement* e,
                      ::flexisip::Xsd::XmlSchema::Flags f = 0,
                      ::flexisip::Xsd::XmlSchema::Container* c = 0);

    RegistrationType (const RegistrationType& x,
                      ::flexisip::Xsd::XmlSchema::Flags f = 0,
                      ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual RegistrationType*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    RegistrationType&
    operator= (Value v);

    virtual
    operator Value () const
    {
      return _xsd_RegistrationType_convert ();
    }

    protected:
    Value
    _xsd_RegistrationType_convert () const;

    public:
    static const char* const _xsd_RegistrationType_literals_[2];
    static const Value _xsd_RegistrationType_indexes_[2];
  };

  class BarringType: public ::flexisip::Xsd::XmlSchema::String
  {
    public:
    enum Value
    {
      active,
      terminated
    };

    BarringType (Value v);

    BarringType (const char* v);

    BarringType (const ::std::string& v);

    BarringType (const ::flexisip::Xsd::XmlSchema::String& v);

    BarringType (const ::xercesc::DOMElement& e,
                 ::flexisip::Xsd::XmlSchema::Flags f = 0,
                 ::flexisip::Xsd::XmlSchema::Container* c = 0);

    BarringType (const ::xercesc::DOMAttr& a,
                 ::flexisip::Xsd::XmlSchema::Flags f = 0,
                 ::flexisip::Xsd::XmlSchema::Container* c = 0);

    BarringType (const ::std::string& s,
                 const ::xercesc::DOMElement* e,
                 ::flexisip::Xsd::XmlSchema::Flags f = 0,
                 ::flexisip::Xsd::XmlSchema::Container* c = 0);

    BarringType (const BarringType& x,
                 ::flexisip::Xsd::XmlSchema::Flags f = 0,
                 ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual BarringType*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    BarringType&
    operator= (Value v);

    virtual
    operator Value () const
    {
      return _xsd_BarringType_convert ();
    }

    protected:
    Value
    _xsd_BarringType_convert () const;

    public:
    static const char* const _xsd_BarringType_literals_[2];
    static const Value _xsd_BarringType_indexes_[2];
  };

  class ServiceDescription: public ::flexisip::Xsd::XmlSchema::Type
  {
    public:
    // service-id
    //
    typedef ::flexisip::Xsd::XmlSchema::Token ServiceIdType;
    typedef ::xsd::cxx::tree::traits< ServiceIdType, char > ServiceIdTraits;

    const ServiceIdType&
    getServiceId () const;

    ServiceIdType&
    getServiceId ();

    void
    setServiceId (const ServiceIdType& x);

    void
    setServiceId (::std::unique_ptr< ServiceIdType > p);

    ::std::unique_ptr< ServiceIdType >
    setDetachService_id ();

    // version
    //
    typedef ::flexisip::Xsd::XmlSchema::Token VersionType;
    typedef ::xsd::cxx::tree::traits< VersionType, char > VersionTraits;

    const VersionType&
    getVersion () const;

    VersionType&
    getVersion ();

    void
    setVersion (const VersionType& x);

    void
    setVersion (::std::unique_ptr< VersionType > p);

    ::std::unique_ptr< VersionType >
    setDetachVersion ();

    // description
    //
    typedef ::flexisip::Xsd::XmlSchema::Token DescriptionType;
    typedef ::xsd::cxx::tree::optional< DescriptionType > DescriptionOptional;
    typedef ::xsd::cxx::tree::traits< DescriptionType, char > DescriptionTraits;

    const DescriptionOptional&
    getDescription () const;

    DescriptionOptional&
    getDescription ();

    void
    setDescription (const DescriptionType& x);

    void
    setDescription (const DescriptionOptional& x);

    void
    setDescription (::std::unique_ptr< DescriptionType > p);

    // any
    //
    typedef ::xsd::cxx::tree::element_sequence AnySequence;
    typedef AnySequence::iterator AnyIterator;
    typedef AnySequence::const_iterator AnyConstIterator;

    const AnySequence&
    getAny () const;

    AnySequence&
    getAny ();

    void
    setAny (const AnySequence& s);

    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    ServiceDescription (const ServiceIdType&,
                        const VersionType&);

    ServiceDescription (const ::xercesc::DOMElement& e,
                        ::flexisip::Xsd::XmlSchema::Flags f = 0,
                        ::flexisip::Xsd::XmlSchema::Container* c = 0);

    ServiceDescription (const ServiceDescription& x,
                        ::flexisip::Xsd::XmlSchema::Flags f = 0,
                        ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual ServiceDescription*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    ServiceDescription&
    operator= (const ServiceDescription& x);

    virtual 
    ~ServiceDescription ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    ::xsd::cxx::tree::one< ServiceIdType > service_id_;
    ::xsd::cxx::tree::one< VersionType > version_;
    DescriptionOptional description_;
    AnySequence any_;
    AnyAttributeSet any_attribute_;
  };

  class Willingness: public ::flexisip::Xsd::XmlSchema::Type
  {
    public:
    // basic
    //
    typedef ::oma_pres::BasicType BasicType;
    typedef ::xsd::cxx::tree::optional< BasicType > BasicOptional;
    typedef ::xsd::cxx::tree::traits< BasicType, char > BasicTraits;

    const BasicOptional&
    getBasic () const;

    BasicOptional&
    getBasic ();

    void
    setBasic (const BasicType& x);

    void
    setBasic (const BasicOptional& x);

    void
    setBasic (::std::unique_ptr< BasicType > p);

    // any
    //
    typedef ::xsd::cxx::tree::element_sequence AnySequence;
    typedef AnySequence::iterator AnyIterator;
    typedef AnySequence::const_iterator AnyConstIterator;

    const AnySequence&
    getAny () const;

    AnySequence&
    getAny ();

    void
    setAny (const AnySequence& s);

    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    Willingness ();

    Willingness (const ::xercesc::DOMElement& e,
                 ::flexisip::Xsd::XmlSchema::Flags f = 0,
                 ::flexisip::Xsd::XmlSchema::Container* c = 0);

    Willingness (const Willingness& x,
                 ::flexisip::Xsd::XmlSchema::Flags f = 0,
                 ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual Willingness*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    Willingness&
    operator= (const Willingness& x);

    virtual 
    ~Willingness ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    BasicOptional basic_;
    AnySequence any_;
    AnyAttributeSet any_attribute_;
  };

  class SessionParticipation: public ::flexisip::Xsd::XmlSchema::Type
  {
    public:
    // basic
    //
    typedef ::oma_pres::BasicType BasicType;
    typedef ::xsd::cxx::tree::optional< BasicType > BasicOptional;
    typedef ::xsd::cxx::tree::traits< BasicType, char > BasicTraits;

    const BasicOptional&
    getBasic () const;

    BasicOptional&
    getBasic ();

    void
    setBasic (const BasicType& x);

    void
    setBasic (const BasicOptional& x);

    void
    setBasic (::std::unique_ptr< BasicType > p);

    // any
    //
    typedef ::xsd::cxx::tree::element_sequence AnySequence;
    typedef AnySequence::iterator AnyIterator;
    typedef AnySequence::const_iterator AnyConstIterator;

    const AnySequence&
    getAny () const;

    AnySequence&
    getAny ();

    void
    setAny (const AnySequence& s);

    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    SessionParticipation ();

    SessionParticipation (const ::xercesc::DOMElement& e,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          ::flexisip::Xsd::XmlSchema::Container* c = 0);

    SessionParticipation (const SessionParticipation& x,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual SessionParticipation*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    SessionParticipation&
    operator= (const SessionParticipation& x);

    virtual 
    ~SessionParticipation ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    BasicOptional basic_;
    AnySequence any_;
    AnyAttributeSet any_attribute_;
  };

  class RegistrationState: public ::oma_pres::RegistrationType
  {
    public:
    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    RegistrationState (::oma_pres::RegistrationType::Value);

    RegistrationState (const char*);

    RegistrationState (const ::std::string&);

    RegistrationState (const ::oma_pres::RegistrationType&);

    RegistrationState (const ::xercesc::DOMElement& e,
                       ::flexisip::Xsd::XmlSchema::Flags f = 0,
                       ::flexisip::Xsd::XmlSchema::Container* c = 0);

    RegistrationState (const RegistrationState& x,
                       ::flexisip::Xsd::XmlSchema::Flags f = 0,
                       ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual RegistrationState*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    RegistrationState&
    operator= (const RegistrationState& x);

    virtual 
    ~RegistrationState ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    AnyAttributeSet any_attribute_;
  };

  class BarringState: public ::oma_pres::BarringType
  {
    public:
    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    BarringState (::oma_pres::BarringType::Value);

    BarringState (const char*);

    BarringState (const ::std::string&);

    BarringState (const ::oma_pres::BarringType&);

    BarringState (const ::xercesc::DOMElement& e,
                  ::flexisip::Xsd::XmlSchema::Flags f = 0,
                  ::flexisip::Xsd::XmlSchema::Container* c = 0);

    BarringState (const BarringState& x,
                  ::flexisip::Xsd::XmlSchema::Flags f = 0,
                  ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual BarringState*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    BarringState&
    operator= (const BarringState& x);

    virtual 
    ~BarringState ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    AnyAttributeSet any_attribute_;
  };

  class OverridingWillingness: public ::flexisip::Xsd::XmlSchema::Type
  {
    public:
    // basic
    //
    typedef ::oma_pres::BasicType BasicType;
    typedef ::xsd::cxx::tree::optional< BasicType > BasicOptional;
    typedef ::xsd::cxx::tree::traits< BasicType, char > BasicTraits;

    const BasicOptional&
    getBasic () const;

    BasicOptional&
    getBasic ();

    void
    setBasic (const BasicType& x);

    void
    setBasic (const BasicOptional& x);

    void
    setBasic (::std::unique_ptr< BasicType > p);

    // any
    //
    typedef ::xsd::cxx::tree::element_sequence AnySequence;
    typedef AnySequence::iterator AnyIterator;
    typedef AnySequence::const_iterator AnyConstIterator;

    const AnySequence&
    getAny () const;

    AnySequence&
    getAny ();

    void
    setAny (const AnySequence& s);

    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    OverridingWillingness ();

    OverridingWillingness (const ::xercesc::DOMElement& e,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           ::flexisip::Xsd::XmlSchema::Container* c = 0);

    OverridingWillingness (const OverridingWillingness& x,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual OverridingWillingness*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    OverridingWillingness&
    operator= (const OverridingWillingness& x);

    virtual 
    ~OverridingWillingness ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    BasicOptional basic_;
    AnySequence any_;
    AnyAttributeSet any_attribute_;
  };

  class NetworkAvailability: public ::flexisip::Xsd::XmlSchema::Type
  {
    public:
    // network
    //
    typedef ::oma_pres::Network NetworkType;
    typedef ::xsd::cxx::tree::sequence< NetworkType > NetworkSequence;
    typedef NetworkSequence::iterator NetworkIterator;
    typedef NetworkSequence::const_iterator NetworkConstIterator;
    typedef ::xsd::cxx::tree::traits< NetworkType, char > NetworkTraits;

    const NetworkSequence&
    getNetwork () const;

    NetworkSequence&
    getNetwork ();

    void
    setNetwork (const NetworkSequence& s);

    // any
    //
    typedef ::xsd::cxx::tree::element_sequence AnySequence;
    typedef AnySequence::iterator AnyIterator;
    typedef AnySequence::const_iterator AnyConstIterator;

    const AnySequence&
    getAny () const;

    AnySequence&
    getAny ();

    void
    setAny (const AnySequence& s);

    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    NetworkAvailability ();

    NetworkAvailability (const ::xercesc::DOMElement& e,
                         ::flexisip::Xsd::XmlSchema::Flags f = 0,
                         ::flexisip::Xsd::XmlSchema::Container* c = 0);

    NetworkAvailability (const NetworkAvailability& x,
                         ::flexisip::Xsd::XmlSchema::Flags f = 0,
                         ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual NetworkAvailability*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    NetworkAvailability&
    operator= (const NetworkAvailability& x);

    virtual 
    ~NetworkAvailability ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    NetworkSequence network_;
    AnySequence any_;
    AnyAttributeSet any_attribute_;
  };

  class Network: public ::flexisip::Xsd::XmlSchema::Type
  {
    public:
    // active
    //
    typedef ::oma_pres::EmptyType ActiveType;
    typedef ::xsd::cxx::tree::optional< ActiveType > ActiveOptional;
    typedef ::xsd::cxx::tree::traits< ActiveType, char > ActiveTraits;

    const ActiveOptional&
    getActive () const;

    ActiveOptional&
    getActive ();

    void
    setActive (const ActiveType& x);

    void
    setActive (const ActiveOptional& x);

    void
    setActive (::std::unique_ptr< ActiveType > p);

    // terminated
    //
    typedef ::oma_pres::EmptyType TerminatedType;
    typedef ::xsd::cxx::tree::optional< TerminatedType > TerminatedOptional;
    typedef ::xsd::cxx::tree::traits< TerminatedType, char > TerminatedTraits;

    const TerminatedOptional&
    getTerminated () const;

    TerminatedOptional&
    getTerminated ();

    void
    setTerminated (const TerminatedType& x);

    void
    setTerminated (const TerminatedOptional& x);

    void
    setTerminated (::std::unique_ptr< TerminatedType > p);

    // any
    //
    typedef ::xsd::cxx::tree::element_sequence AnySequence;
    typedef AnySequence::iterator AnyIterator;
    typedef AnySequence::const_iterator AnyConstIterator;

    const AnySequence&
    getAny () const;

    AnySequence&
    getAny ();

    void
    setAny (const AnySequence& s);

    // id
    //
    typedef ::flexisip::Xsd::XmlSchema::Token IdType;
    typedef ::xsd::cxx::tree::traits< IdType, char > IdTraits;

    const IdType&
    getId () const;

    IdType&
    getId ();

    void
    setId (const IdType& x);

    void
    setId (::std::unique_ptr< IdType > p);

    ::std::unique_ptr< IdType >
    setDetachId ();

    // any_attribute
    //
    typedef ::xsd::cxx::tree::attribute_set< char > AnyAttributeSet;
    typedef AnyAttributeSet::iterator AnyAttributeIterator;
    typedef AnyAttributeSet::const_iterator AnyAttributeConstIterator;

    const AnyAttributeSet&
    getAnyAttribute () const;

    AnyAttributeSet&
    getAnyAttribute ();

    void
    setAnyAttribute (const AnyAttributeSet& s);

    // DOMDocument for wildcard content.
    //
    const ::xercesc::DOMDocument&
    getDomDocument () const;

    ::xercesc::DOMDocument&
    getDomDocument ();

    // Constructors.
    //
    Network (const IdType&);

    Network (const ::xercesc::DOMElement& e,
             ::flexisip::Xsd::XmlSchema::Flags f = 0,
             ::flexisip::Xsd::XmlSchema::Container* c = 0);

    Network (const Network& x,
             ::flexisip::Xsd::XmlSchema::Flags f = 0,
             ::flexisip::Xsd::XmlSchema::Container* c = 0);

    virtual Network*
    _clone (::flexisip::Xsd::XmlSchema::Flags f = 0,
            ::flexisip::Xsd::XmlSchema::Container* c = 0) const;

    Network&
    operator= (const Network& x);

    virtual 
    ~Network ();

    // Implementation.
    //
    protected:
    void
    parse (::xsd::cxx::xml::dom::parser< char >&,
           ::flexisip::Xsd::XmlSchema::Flags);

    protected:
    ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > dom_document_;

    ActiveOptional active_;
    TerminatedOptional terminated_;
    AnySequence any_;
    ::xsd::cxx::tree::one< IdType > id_;
    AnyAttributeSet any_attribute_;
  };
}

#include <iosfwd>

namespace oma_pres
{
  ::std::ostream&
  operator<< (::std::ostream&, BasicType::Value);

  ::std::ostream&
  operator<< (::std::ostream&, const BasicType&);

  ::std::ostream&
  operator<< (::std::ostream&, const EmptyType&);

  ::std::ostream&
  operator<< (::std::ostream&, RegistrationType::Value);

  ::std::ostream&
  operator<< (::std::ostream&, const RegistrationType&);

  ::std::ostream&
  operator<< (::std::ostream&, BarringType::Value);

  ::std::ostream&
  operator<< (::std::ostream&, const BarringType&);

  ::std::ostream&
  operator<< (::std::ostream&, const ServiceDescription&);

  ::std::ostream&
  operator<< (::std::ostream&, const Willingness&);

  ::std::ostream&
  operator<< (::std::ostream&, const SessionParticipation&);

  ::std::ostream&
  operator<< (::std::ostream&, const RegistrationState&);

  ::std::ostream&
  operator<< (::std::ostream&, const BarringState&);

  ::std::ostream&
  operator<< (::std::ostream&, const OverridingWillingness&);

  ::std::ostream&
  operator<< (::std::ostream&, const NetworkAvailability&);

  ::std::ostream&
  operator<< (::std::ostream&, const Network&);
}

#include <iosfwd>

#include <xercesc/sax/InputSource.hpp>
#include <xercesc/dom/DOMDocument.hpp>
#include <xercesc/dom/DOMErrorHandler.hpp>

namespace oma_pres
{
  // Parse a URI or a local file.
  //

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (const ::std::string& uri,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (const ::std::string& uri,
                           ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (const ::std::string& uri,
                           ::xercesc::DOMErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse std::istream.
  //

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::std::istream& is,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::std::istream& is,
                           ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::std::istream& is,
                           ::xercesc::DOMErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::std::istream& is,
                           const ::std::string& id,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::std::istream& is,
                           const ::std::string& id,
                           ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::std::istream& is,
                           const ::std::string& id,
                           ::xercesc::DOMErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::InputSource.
  //

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::xercesc::InputSource& is,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::xercesc::InputSource& is,
                           ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::xercesc::InputSource& is,
                           ::xercesc::DOMErrorHandler& eh,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::DOMDocument.
  //

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (const ::xercesc::DOMDocument& d,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::ServiceDescription >
  parseServiceDescription (::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > d,
                           ::flexisip::Xsd::XmlSchema::Flags f = 0,
                           const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse a URI or a local file.
  //

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (const ::std::string& uri,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (const ::std::string& uri,
                    ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (const ::std::string& uri,
                    ::xercesc::DOMErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse std::istream.
  //

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::std::istream& is,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::std::istream& is,
                    ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::std::istream& is,
                    ::xercesc::DOMErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::std::istream& is,
                    const ::std::string& id,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::std::istream& is,
                    const ::std::string& id,
                    ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::std::istream& is,
                    const ::std::string& id,
                    ::xercesc::DOMErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::InputSource.
  //

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::xercesc::InputSource& is,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::xercesc::InputSource& is,
                    ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::xercesc::InputSource& is,
                    ::xercesc::DOMErrorHandler& eh,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::DOMDocument.
  //

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (const ::xercesc::DOMDocument& d,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::Willingness >
  parseWillingness (::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > d,
                    ::flexisip::Xsd::XmlSchema::Flags f = 0,
                    const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse a URI or a local file.
  //

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (const ::std::string& uri,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (const ::std::string& uri,
                             ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (const ::std::string& uri,
                             ::xercesc::DOMErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse std::istream.
  //

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::std::istream& is,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::std::istream& is,
                             ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::std::istream& is,
                             ::xercesc::DOMErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::std::istream& is,
                             const ::std::string& id,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::std::istream& is,
                             const ::std::string& id,
                             ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::std::istream& is,
                             const ::std::string& id,
                             ::xercesc::DOMErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::InputSource.
  //

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::xercesc::InputSource& is,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::xercesc::InputSource& is,
                             ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::xercesc::InputSource& is,
                             ::xercesc::DOMErrorHandler& eh,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::DOMDocument.
  //

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (const ::xercesc::DOMDocument& d,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::SessionParticipation >
  parseSessionParticipation (::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > d,
                             ::flexisip::Xsd::XmlSchema::Flags f = 0,
                             const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse a URI or a local file.
  //

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (const ::std::string& uri,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (const ::std::string& uri,
                          ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (const ::std::string& uri,
                          ::xercesc::DOMErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse std::istream.
  //

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::std::istream& is,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::std::istream& is,
                          ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::std::istream& is,
                          ::xercesc::DOMErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::std::istream& is,
                          const ::std::string& id,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::std::istream& is,
                          const ::std::string& id,
                          ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::std::istream& is,
                          const ::std::string& id,
                          ::xercesc::DOMErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::InputSource.
  //

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::xercesc::InputSource& is,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::xercesc::InputSource& is,
                          ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::xercesc::InputSource& is,
                          ::xercesc::DOMErrorHandler& eh,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::DOMDocument.
  //

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (const ::xercesc::DOMDocument& d,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::RegistrationState >
  parseRegistrationState (::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > d,
                          ::flexisip::Xsd::XmlSchema::Flags f = 0,
                          const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse a URI or a local file.
  //

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (const ::std::string& uri,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (const ::std::string& uri,
                     ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (const ::std::string& uri,
                     ::xercesc::DOMErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse std::istream.
  //

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::std::istream& is,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::std::istream& is,
                     ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::std::istream& is,
                     ::xercesc::DOMErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::std::istream& is,
                     const ::std::string& id,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::std::istream& is,
                     const ::std::string& id,
                     ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::std::istream& is,
                     const ::std::string& id,
                     ::xercesc::DOMErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::InputSource.
  //

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::xercesc::InputSource& is,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::xercesc::InputSource& is,
                     ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::xercesc::InputSource& is,
                     ::xercesc::DOMErrorHandler& eh,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::DOMDocument.
  //

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (const ::xercesc::DOMDocument& d,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::BarringState >
  parseBarringState (::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > d,
                     ::flexisip::Xsd::XmlSchema::Flags f = 0,
                     const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse a URI or a local file.
  //

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (const ::std::string& uri,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (const ::std::string& uri,
                              ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (const ::std::string& uri,
                              ::xercesc::DOMErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse std::istream.
  //

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::std::istream& is,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::std::istream& is,
                              ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::std::istream& is,
                              ::xercesc::DOMErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::std::istream& is,
                              const ::std::string& id,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::std::istream& is,
                              const ::std::string& id,
                              ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::std::istream& is,
                              const ::std::string& id,
                              ::xercesc::DOMErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::InputSource.
  //

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::xercesc::InputSource& is,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::xercesc::InputSource& is,
                              ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::xercesc::InputSource& is,
                              ::xercesc::DOMErrorHandler& eh,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::DOMDocument.
  //

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (const ::xercesc::DOMDocument& d,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::OverridingWillingness >
  parseOverridingWillingness (::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > d,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0,
                              const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse a URI or a local file.
  //

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (const ::std::string& uri,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (const ::std::string& uri,
                            ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (const ::std::string& uri,
                            ::xercesc::DOMErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse std::istream.
  //

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::std::istream& is,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::std::istream& is,
                            ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::std::istream& is,
                            ::xercesc::DOMErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::std::istream& is,
                            const ::std::string& id,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::std::istream& is,
                            const ::std::string& id,
                            ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::std::istream& is,
                            const ::std::string& id,
                            ::xercesc::DOMErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::InputSource.
  //

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::xercesc::InputSource& is,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::xercesc::InputSource& is,
                            ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::xercesc::InputSource& is,
                            ::xercesc::DOMErrorHandler& eh,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  // Parse xercesc::DOMDocument.
  //

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (const ::xercesc::DOMDocument& d,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());

  ::std::unique_ptr< ::oma_pres::NetworkAvailability >
  parseNetworkAvailability (::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument > d,
                            ::flexisip::Xsd::XmlSchema::Flags f = 0,
                            const ::flexisip::Xsd::XmlSchema::Properties& p = ::flexisip::Xsd::XmlSchema::Properties ());
}

#include <iosfwd>

#include <xercesc/dom/DOMDocument.hpp>
#include <xercesc/dom/DOMErrorHandler.hpp>
#include <xercesc/framework/XMLFormatter.hpp>

#include <xsd/cxx/xml/dom/auto-ptr.hxx>

namespace oma_pres
{
  void
  operator<< (::xercesc::DOMElement&, const BasicType&);

  void
  operator<< (::xercesc::DOMAttr&, const BasicType&);

  void
  operator<< (::flexisip::Xsd::XmlSchema::ListStream&,
              const BasicType&);

  void
  operator<< (::xercesc::DOMElement&, const EmptyType&);

  void
  operator<< (::xercesc::DOMAttr&, const EmptyType&);

  void
  operator<< (::flexisip::Xsd::XmlSchema::ListStream&,
              const EmptyType&);

  void
  operator<< (::xercesc::DOMElement&, const RegistrationType&);

  void
  operator<< (::xercesc::DOMAttr&, const RegistrationType&);

  void
  operator<< (::flexisip::Xsd::XmlSchema::ListStream&,
              const RegistrationType&);

  void
  operator<< (::xercesc::DOMElement&, const BarringType&);

  void
  operator<< (::xercesc::DOMAttr&, const BarringType&);

  void
  operator<< (::flexisip::Xsd::XmlSchema::ListStream&,
              const BarringType&);

  // Serialize to std::ostream.
  //

  void
  serializeServiceDescription (::std::ostream& os,
                               const ::oma_pres::ServiceDescription& x, 
                               const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                               const ::std::string& e = "UTF-8",
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeServiceDescription (::std::ostream& os,
                               const ::oma_pres::ServiceDescription& x, 
                               ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                               const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                               const ::std::string& e = "UTF-8",
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeServiceDescription (::std::ostream& os,
                               const ::oma_pres::ServiceDescription& x, 
                               ::xercesc::DOMErrorHandler& eh,
                               const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                               const ::std::string& e = "UTF-8",
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to xercesc::XMLFormatTarget.
  //

  void
  serializeServiceDescription (::xercesc::XMLFormatTarget& ft,
                               const ::oma_pres::ServiceDescription& x, 
                               const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                               const ::std::string& e = "UTF-8",
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeServiceDescription (::xercesc::XMLFormatTarget& ft,
                               const ::oma_pres::ServiceDescription& x, 
                               ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                               const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                               const ::std::string& e = "UTF-8",
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeServiceDescription (::xercesc::XMLFormatTarget& ft,
                               const ::oma_pres::ServiceDescription& x, 
                               ::xercesc::DOMErrorHandler& eh,
                               const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                               const ::std::string& e = "UTF-8",
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to an existing xercesc::DOMDocument.
  //

  void
  serializeServiceDescription (::xercesc::DOMDocument& d,
                               const ::oma_pres::ServiceDescription& x,
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to a new xercesc::DOMDocument.
  //

  ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument >
  serializeServiceDescription (const ::oma_pres::ServiceDescription& x, 
                               const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                               ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to std::ostream.
  //

  void
  serializeWillingness (::std::ostream& os,
                        const ::oma_pres::Willingness& x, 
                        const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                        const ::std::string& e = "UTF-8",
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeWillingness (::std::ostream& os,
                        const ::oma_pres::Willingness& x, 
                        ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                        const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                        const ::std::string& e = "UTF-8",
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeWillingness (::std::ostream& os,
                        const ::oma_pres::Willingness& x, 
                        ::xercesc::DOMErrorHandler& eh,
                        const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                        const ::std::string& e = "UTF-8",
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to xercesc::XMLFormatTarget.
  //

  void
  serializeWillingness (::xercesc::XMLFormatTarget& ft,
                        const ::oma_pres::Willingness& x, 
                        const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                        const ::std::string& e = "UTF-8",
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeWillingness (::xercesc::XMLFormatTarget& ft,
                        const ::oma_pres::Willingness& x, 
                        ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                        const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                        const ::std::string& e = "UTF-8",
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeWillingness (::xercesc::XMLFormatTarget& ft,
                        const ::oma_pres::Willingness& x, 
                        ::xercesc::DOMErrorHandler& eh,
                        const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                        const ::std::string& e = "UTF-8",
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to an existing xercesc::DOMDocument.
  //

  void
  serializeWillingness (::xercesc::DOMDocument& d,
                        const ::oma_pres::Willingness& x,
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to a new xercesc::DOMDocument.
  //

  ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument >
  serializeWillingness (const ::oma_pres::Willingness& x, 
                        const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                        ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to std::ostream.
  //

  void
  serializeSessionParticipation (::std::ostream& os,
                                 const ::oma_pres::SessionParticipation& x, 
                                 const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                 const ::std::string& e = "UTF-8",
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeSessionParticipation (::std::ostream& os,
                                 const ::oma_pres::SessionParticipation& x, 
                                 ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                                 const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                 const ::std::string& e = "UTF-8",
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeSessionParticipation (::std::ostream& os,
                                 const ::oma_pres::SessionParticipation& x, 
                                 ::xercesc::DOMErrorHandler& eh,
                                 const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                 const ::std::string& e = "UTF-8",
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to xercesc::XMLFormatTarget.
  //

  void
  serializeSessionParticipation (::xercesc::XMLFormatTarget& ft,
                                 const ::oma_pres::SessionParticipation& x, 
                                 const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                 const ::std::string& e = "UTF-8",
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeSessionParticipation (::xercesc::XMLFormatTarget& ft,
                                 const ::oma_pres::SessionParticipation& x, 
                                 ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                                 const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                 const ::std::string& e = "UTF-8",
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeSessionParticipation (::xercesc::XMLFormatTarget& ft,
                                 const ::oma_pres::SessionParticipation& x, 
                                 ::xercesc::DOMErrorHandler& eh,
                                 const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                 const ::std::string& e = "UTF-8",
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to an existing xercesc::DOMDocument.
  //

  void
  serializeSessionParticipation (::xercesc::DOMDocument& d,
                                 const ::oma_pres::SessionParticipation& x,
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to a new xercesc::DOMDocument.
  //

  ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument >
  serializeSessionParticipation (const ::oma_pres::SessionParticipation& x, 
                                 const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                 ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to std::ostream.
  //

  void
  serializeRegistrationState (::std::ostream& os,
                              const ::oma_pres::RegistrationState& x, 
                              const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                              const ::std::string& e = "UTF-8",
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeRegistrationState (::std::ostream& os,
                              const ::oma_pres::RegistrationState& x, 
                              ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                              const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                              const ::std::string& e = "UTF-8",
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeRegistrationState (::std::ostream& os,
                              const ::oma_pres::RegistrationState& x, 
                              ::xercesc::DOMErrorHandler& eh,
                              const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                              const ::std::string& e = "UTF-8",
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to xercesc::XMLFormatTarget.
  //

  void
  serializeRegistrationState (::xercesc::XMLFormatTarget& ft,
                              const ::oma_pres::RegistrationState& x, 
                              const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                              const ::std::string& e = "UTF-8",
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeRegistrationState (::xercesc::XMLFormatTarget& ft,
                              const ::oma_pres::RegistrationState& x, 
                              ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                              const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                              const ::std::string& e = "UTF-8",
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeRegistrationState (::xercesc::XMLFormatTarget& ft,
                              const ::oma_pres::RegistrationState& x, 
                              ::xercesc::DOMErrorHandler& eh,
                              const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                              const ::std::string& e = "UTF-8",
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to an existing xercesc::DOMDocument.
  //

  void
  serializeRegistrationState (::xercesc::DOMDocument& d,
                              const ::oma_pres::RegistrationState& x,
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to a new xercesc::DOMDocument.
  //

  ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument >
  serializeRegistrationState (const ::oma_pres::RegistrationState& x, 
                              const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                              ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to std::ostream.
  //

  void
  serializeBarringState (::std::ostream& os,
                         const ::oma_pres::BarringState& x, 
                         const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                         const ::std::string& e = "UTF-8",
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeBarringState (::std::ostream& os,
                         const ::oma_pres::BarringState& x, 
                         ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                         const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                         const ::std::string& e = "UTF-8",
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeBarringState (::std::ostream& os,
                         const ::oma_pres::BarringState& x, 
                         ::xercesc::DOMErrorHandler& eh,
                         const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                         const ::std::string& e = "UTF-8",
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to xercesc::XMLFormatTarget.
  //

  void
  serializeBarringState (::xercesc::XMLFormatTarget& ft,
                         const ::oma_pres::BarringState& x, 
                         const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                         const ::std::string& e = "UTF-8",
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeBarringState (::xercesc::XMLFormatTarget& ft,
                         const ::oma_pres::BarringState& x, 
                         ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                         const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                         const ::std::string& e = "UTF-8",
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeBarringState (::xercesc::XMLFormatTarget& ft,
                         const ::oma_pres::BarringState& x, 
                         ::xercesc::DOMErrorHandler& eh,
                         const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                         const ::std::string& e = "UTF-8",
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to an existing xercesc::DOMDocument.
  //

  void
  serializeBarringState (::xercesc::DOMDocument& d,
                         const ::oma_pres::BarringState& x,
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to a new xercesc::DOMDocument.
  //

  ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument >
  serializeBarringState (const ::oma_pres::BarringState& x, 
                         const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                         ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to std::ostream.
  //

  void
  serializeOverridingWillingness (::std::ostream& os,
                                  const ::oma_pres::OverridingWillingness& x, 
                                  const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                  const ::std::string& e = "UTF-8",
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeOverridingWillingness (::std::ostream& os,
                                  const ::oma_pres::OverridingWillingness& x, 
                                  ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                                  const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                  const ::std::string& e = "UTF-8",
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeOverridingWillingness (::std::ostream& os,
                                  const ::oma_pres::OverridingWillingness& x, 
                                  ::xercesc::DOMErrorHandler& eh,
                                  const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                  const ::std::string& e = "UTF-8",
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to xercesc::XMLFormatTarget.
  //

  void
  serializeOverridingWillingness (::xercesc::XMLFormatTarget& ft,
                                  const ::oma_pres::OverridingWillingness& x, 
                                  const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                  const ::std::string& e = "UTF-8",
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeOverridingWillingness (::xercesc::XMLFormatTarget& ft,
                                  const ::oma_pres::OverridingWillingness& x, 
                                  ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                                  const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                  const ::std::string& e = "UTF-8",
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeOverridingWillingness (::xercesc::XMLFormatTarget& ft,
                                  const ::oma_pres::OverridingWillingness& x, 
                                  ::xercesc::DOMErrorHandler& eh,
                                  const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                  const ::std::string& e = "UTF-8",
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to an existing xercesc::DOMDocument.
  //

  void
  serializeOverridingWillingness (::xercesc::DOMDocument& d,
                                  const ::oma_pres::OverridingWillingness& x,
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to a new xercesc::DOMDocument.
  //

  ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument >
  serializeOverridingWillingness (const ::oma_pres::OverridingWillingness& x, 
                                  const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                  ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to std::ostream.
  //

  void
  serializeNetworkAvailability (::std::ostream& os,
                                const ::oma_pres::NetworkAvailability& x, 
                                const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                const ::std::string& e = "UTF-8",
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeNetworkAvailability (::std::ostream& os,
                                const ::oma_pres::NetworkAvailability& x, 
                                ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                                const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                const ::std::string& e = "UTF-8",
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeNetworkAvailability (::std::ostream& os,
                                const ::oma_pres::NetworkAvailability& x, 
                                ::xercesc::DOMErrorHandler& eh,
                                const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                const ::std::string& e = "UTF-8",
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to xercesc::XMLFormatTarget.
  //

  void
  serializeNetworkAvailability (::xercesc::XMLFormatTarget& ft,
                                const ::oma_pres::NetworkAvailability& x, 
                                const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                const ::std::string& e = "UTF-8",
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeNetworkAvailability (::xercesc::XMLFormatTarget& ft,
                                const ::oma_pres::NetworkAvailability& x, 
                                ::flexisip::Xsd::XmlSchema::ErrorHandler& eh,
                                const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                const ::std::string& e = "UTF-8",
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  serializeNetworkAvailability (::xercesc::XMLFormatTarget& ft,
                                const ::oma_pres::NetworkAvailability& x, 
                                ::xercesc::DOMErrorHandler& eh,
                                const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                const ::std::string& e = "UTF-8",
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to an existing xercesc::DOMDocument.
  //

  void
  serializeNetworkAvailability (::xercesc::DOMDocument& d,
                                const ::oma_pres::NetworkAvailability& x,
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  // Serialize to a new xercesc::DOMDocument.
  //

  ::flexisip::Xsd::XmlSchema::dom::unique_ptr< ::xercesc::DOMDocument >
  serializeNetworkAvailability (const ::oma_pres::NetworkAvailability& x, 
                                const ::flexisip::Xsd::XmlSchema::NamespaceInfomap& m = ::flexisip::Xsd::XmlSchema::NamespaceInfomap (),
                                ::flexisip::Xsd::XmlSchema::Flags f = 0);

  void
  operator<< (::xercesc::DOMElement&, const ServiceDescription&);

  void
  operator<< (::xercesc::DOMElement&, const Willingness&);

  void
  operator<< (::xercesc::DOMElement&, const SessionParticipation&);

  void
  operator<< (::xercesc::DOMElement&, const RegistrationState&);

  void
  operator<< (::xercesc::DOMElement&, const BarringState&);

  void
  operator<< (::xercesc::DOMElement&, const OverridingWillingness&);

  void
  operator<< (::xercesc::DOMElement&, const NetworkAvailability&);

  void
  operator<< (::xercesc::DOMElement&, const Network&);
}

#include <xsd/cxx/post.hxx>

// Begin epilogue.
//
#if __clang__ || __GNUC__ >= 4
	#pragma GCC diagnostic pop
#endif
//
// End epilogue.

#endif // XML_PIDF_OMA_PRES_HH
