## Class attribute_

zeep::xml::doctype::attribute_

## Synopsis

    // In header: <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 &);
      std::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 set_external(bool);
      bool is_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.     std::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 set_external(bool external);

9.     bool is_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;