---
name: "XML::Doctype::AttDef"
section: "3pm"
platform: "linux"
package: "libxml-autowriter-perl"
version: "0.40-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/XML::Doctype::AttDef"
---

# XML::Doctype::AttDef(3pm)

A class representing a definition in an \<!ATTLIST\> tag

## NAME

XML::Doctype::AttDef - A class representing a definition in an \<!ATTLIST\> tag

## SYNOPSIS

```
   $attr = $elt->attribute( $name ) ;
   $attr->name ;
```

## DESCRIPTION

This module is used to represent \<!ELEMENT\> tags in an XML::Doctype object. It contains \<!ATTLIST\> tags as well.

## STATUS

This module is alpha code.  It's developed enough to support XML::ValidWriter, but need a lot of work.  Some big things that are lacking are:

## METHODS

- new

  ```
     $dtd = XML::Doctype::AttDef->new( $name, $type, $default ) ;
  ```

- default

  ```
     ( $spec, $value ) = $attr->default ;
     $attr->default( '#REQUIRED' ) ;
     $attr->default( '#IMPLIED' ) ;
     $attr->default( '', 'foo' ) ;
     $attr->default( '#FIXED', 'foo' ) ;
  ```

  Sets/gets the default value.  This is a

- quant

  ```
     $attdef->quant( $q ) ;
     $q = $attdef->quant ;
  ```

  Sets/gets the attribute quantifier: '#REQUIRED', '#FIXED', '#IMPLIED', or ''.

- name

  ```
     $attdef->name( $name ) ;
     $name = $attdef->name ;
  ```

  Sets/gets this attribute name.  Don't change the name while an attribute is in an element's attlist, since it will then be filed under the wrong name.

- default\_on\_write

  ```
     $attdef->default_on_write( $value ) ;
     $value = $attdef->default_on_write ;
     $attdef->default_on_write( $attdef->default ) ;
  ```

  Sets/gets the value which is automatically output for this attribute if none is supplied to `$writer`-\>startTag.  This is typically used to set a document-wide default for #REQUIRED attributes (and perhaps plain attributes) so that the attribute is treated like a #FIXED tag and emitted with a fixed value.

  The default\_on\_write does not need to be the same as the default unless the quantifier is #FIXED.

## SUBCLASSING

This object uses the fields pragma, so you should use base and fields for any subclasses.

## AUTHOR

Barrie Slaymaker \<barries@slaysys.com\>

## COPYRIGHT

This module is Copyright 2000, 2005 Barrie Slaymaker.  All rights reserved.

This module is licensed under your choice of the Artistic, BSD or General Public License.
