---
name: "XML::SAX::ExpatXS"
section: "3pm"
platform: "linux"
package: "libxml-sax-expatxs-perl"
version: "1.33-3+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/XML::SAX::ExpatXS"
---

# XML::SAX::ExpatXS(3pm)

Perl SAX 2 XS extension to Expat parser

## NAME

XML::SAX::ExpatXS - Perl SAX 2 XS extension to Expat parser

## SYNOPSIS

```
 use XML::SAX::ExpatXS;
 $handler = MyHandler->new();
 $parser = XML::SAX::ExpatXS->new( Handler => $handler );
 $parser->parse_uri($uri);
  #or
 $parser->parse_string($xml);
```

## DESCRIPTION

XML::SAX::ExpatXS is a direct XS extension to Expat XML parser. It implements Perl SAX 2.1 interface. See http://perl-xml.sourceforge.net/perl-sax/ for Perl SAX API description. Any deviations from the Perl SAX 2.1 specification  are considered as bugs.

### Features

The parser behavior can be changed by setting features.

```
 $parser->set_feature(FEATURE, VALUE);
```

XML::SAX::ExpatXS provides these adjustable features:

- "http://xmlns.perl.org/sax/join-character-data"

  Consequent character data are joined (1, default) or not (0).

- "http://xmlns.perl.org/sax/ns-attributes"

  Namespace attributes are reported as common attributes (1, default) or not (0).

- "http://xmlns.perl.org/sax/xmlns-uris"

  When set on, xmlns and xmlns:\* attributes are put into namespaces in a Perl SAX traditional way; xmlns attributes are in no namespace while xmlns:\* attributes are in the `"http://www.w3.org/2000/xmlns/"` namespace. This feature is set to 1 by default.

- "http://xml.org/sax/features/xmlns-uris"

  This feature applies if and only if the `"http://xmlns.perl.org/sax/xmlns-uris"` feature is off. Then, xmlns and xmlns:\* attributes are both put into no namespace  (0, default) or into `"http://www.w3.org/2000/xmlns/"` namespace (1).

- "http://xmlns.perl.org/sax/locator"

  The document locator is updated (1, default) for ContentHadler events or not (0).

- "http://xmlns.perl.org/sax/recstring"

  A recognized string (the text string currently processed by this XML parser)  is either maintained as `$parser`-\>{ParseOptions}{RecognizedString} (1) or not  (0, default).

- "http://xml.org/sax/features/external-general-entities"

  Controls whether this parser processes external general entities (1, default) or not (0).

- "http://xml.org/sax/features/external-parameter-entities"

  Controls whether this parser processes external parameter entities including  an external DTD subset (1) or not (0, default).

### Constructor Options

Apart from features, the behavior of this parser can also be changed with options to the constructor.

- ParseParamEnt

  ```
   ParseParamEnt => 1
  ```

  This option meaning is exactly the same as  the `"http://xml.org/sax/features/external-parameter-entities"` feature.  The option is supported only because of the compatibility with older versions of this module. Turned off by default.

- NoExpand

  ```
   NoExpand => 1
  ```

  No internal entities are expanded if this option is turned on. Turned off by default.

### Read-only Properties

- ExpatVersion

  This property returns a version of linked Expat library, for example  expat\_1.95.7.

## AUTHORS

```
 Petr Cimprich <pcimprich AT gmail DOT com> (maintainer)
 Matt Sergeant <matt AT sergeant DOT org>
```

## COPYRIGHT

2002-2004 Matt Sergeant, 2004-2011 Petr Cimprich. All rights reserved.

## LICENSE

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