## Class attribute

zeep::xml::doctype::attribute

## Synopsis

    // In header: </home/maarten/projects/libzeep/zeep/xml/doctype.hpp>

    class attribute {
    public:
      // construct/copy/destruct
      attribute(const std::string &, AttributeType);
      attribute(const std::string &, AttributeType,
                const std::vector< std::string > &);

      // public member functions
      const std::string & name() const;
      bool validate_value(std::string &, const entity_list &) const;
      void set_default(AttributeDefault, const std::string &);
      boost::tuple< AttributeDefault, std::string > get_default() const;
      AttributeType get_type() const;
      AttributeDefault get_default_type() const;
      const std::vector< std::string > & get_enums() const;
      void external(bool);
      bool external() const;

      // private member functions
      bool is_name(std::string &) const;
      bool is_names(std::string &) const;
      bool is_nmtoken(std::string &) const;
      bool is_nmtokens(std::string &) const;
      bool is_unparsed_entity(const std::string &, const entity_list &) const;
    };

## Description

### `attribute` public construct/copy/destruct

1.     attribute(const std::string & name, AttributeType type);

2.     attribute(const std::string & name, AttributeType type,
                 const std::vector< std::string > & enums);

### `attribute` public member functions

1.     const std::string & name() const;

2.     bool validate_value(std::string & value, const entity_list & entities) const;

3.     void set_default(AttributeDefault def, const std::string & value);

4.     boost::tuple< AttributeDefault, std::string > get_default() const;

5.     AttributeType get_type() const;

6.     AttributeDefault get_default_type() const;

7.     const std::vector< std::string > & get_enums() const;

8.     void external(bool external);

9.     bool external() const;

### `attribute` private member functions

1.     bool is_name(std::string & s) const;

2.     bool is_names(std::string & s) const;

3.     bool is_nmtoken(std::string & s) const;

4.     bool is_nmtokens(std::string & s) const;

5.     bool is_unparsed_entity(const std::string & s, const entity_list & l) const;