---
name: "XML::Smart::DTD"
section: "3pm"
platform: "linux"
package: "perl-xml-smart"
version: "1.79-14"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XML::Smart::DTD"
---

# XML::Smart::DTD(3pm)

DTD parser for XML::Smart.

## NAME

XML::Smart::DTD - DTD parser for XML::Smart.

## DESCRIPTION

This will parse DTD and provides methods to access the information stored in the DTD.

## USAGE

```
  use XML::Smart::DTD ;
  my $dtd = XML::Smart::DTD->new('some.dtd') ;

  if ( $dtd->child_exists('tag1','subtag1') ) {
  ...
  }
  use Data::Dumper ;
  print Dumper( $dtd->tree ) ;
```

## new

## METHODS

### attr\_exists ( TAG , ATTR )

Return *TRUE* if the attribute exists in the element TAG.

### child\_exists ( TAG , CHILD )

Return *TRUE* if the child exists in the element TAG.

### elem\_exists ( TAG )

Return *TRUE* if the element TAG exists.

### error

Return the error list.

### get\_attr\_def ( TAG , ATTR )

Return the default value of an attribute

### get\_attr\_type ( TAG , ATTR )

Return the attribute type.

### get\_attr\_values ( TAG , ATTR )

Return the defined values of an attribute.

### get\_attrs ( TAG )

Return the attribute list of a element.

### get\_attrs\_req ( TAG )

Return the required attribute list of a element.

### get\_childs ( TAG )

Return the child list of an element.

### get\_childs\_req ( TAG )

Return the required child list of an element.

### get\_elem\_opt ( TAG )

Return the occurrence option of an element:

```
  !  REQUIRED AND ONLY ONE MATCH
  +  1 or more
  *  0 or more
  ?  0 or 1
```

### get\_elem\_child\_opt ( TAG , CHILD )

Same of ***get\_elem\_opt()*** but this element as a child of an element.

### is\_attr\_fix ( TAG , ATTR )

Return *TRUE* if an attribute is *FIXED*.

### is\_attr\_req ( TAG , ATTR )

Return *TRUE* if an attribute is *REQUIRED*.

### is\_elem\_any ( TAG )

Return *TRUE* if an element is *ANY*.

### is\_elem\_child\_multi ( TAG , CHILD )

Return *TRUE* if an element can have multiple occurrences as a child of TAG.

### is\_elem\_child\_opt ( TAG , CHILD )

Return *TRUE* if an element is optional as a child of TAG.

### is\_elem\_child\_req ( TAG , CHILD )

Return *TRUE* if an element is optional as a child of TAG.

### is\_elem\_child\_uniq ( TAG , CHILD )

Return *TRUE* if an element is required and unique as a child of TAG.

### is\_elem\_pcdata ( TAG )

Return *TRUE* if an element is *PCDATA* (have content).

### is\_elem\_empty ( TAG )

Return *TRUE* if an element is *EMPTY* (doesn't have attributes, content or children).

### is\_elem\_multi ( TAG )

Return *TRUE* if an element can have multiple occurrences globally.

### is\_elem\_opt ( TAG )

Return *TRUE* if an element is optional globally.

### is\_elem\_parent ( TAG , @PARENTS )

Return *TRUE* if the list of `@PARENTS` can be parent of element TAG.

### is\_elem\_req

Return *TRUE* if an element is required globally.

### is\_elem\_uniq

Return *TRUE* if an element is unique and required globally.

### root

Return the root name of the DTD.

### tree

Return the HASH tree of the DTD.

## SEE ALSO

XML::Smart, XML::DTDParser.

## AUTHOR

Graciliano M. P. \<gm@virtuasites.com.br\>

I will appreciate any type of feedback (include your opinions and/or suggestions). ;-P

## THANKS

Thanks to Jenda@Krynicky.cz http://Jenda.Krynicky.cz that is the author of XML::DTDParser.

## COPYRIGHT

The DTD parser was based on XML-DTDParser-1.7 by Jenda@Krynicky.cz http://Jenda.Krynicky.cz

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
