---
name: "XML::Validate::MSXML"
section: "3pm"
platform: "linux"
package: "libxml-validate-perl"
version: "1.025-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/XML::Validate::MSXML"
---

# XML::Validate::MSXML(3pm)

Interface to MSXML validator

## NAME

XML::Validate::MSXML - Interface to MSXML validator

## SYNOPSIS

```
  my $validator = new XML::Validate::MSXML(%options);
  if ($doc = $validator->validate($xml)) {
    ... Do stuff with $doc ...
  } else {
    print "Document is invalid\n";
  }
```

## DESCRIPTION

XML::Validate::MSXML is an interface to Microsoft's MSXML parser (often available in Windows environments) which can be used with the XML::Validate module.

## METHODS

- new(%options)

  Returns a new XML::Validate::MSXML instance using the specified options. (See OPTIONS below.)

- validate($xml)

  Returns true if `$xml` could be successfully parsed, undef otherwise.

- **last\_dom()**

  Returns the MSXML DOM object of the document last validated.

- **last\_error()**

  Returns the error from the last validate call. This is a hash ref with the following fields:

- **create\_doc\_and\_cache()**

  Internal method for instantiation of MSXML DOMDocument and SchemaCache objects for use within the module.

- **dependencies\_available()**

  Internal method to determine that the necessary dependencies are available for instantiation of MSXML DOMDocument and SchemaCache objects.

- load\_schemas($msxml, $msxmlcache)

  Internal method to perform loading of XML schema(s) into SchemaCache object.

  - •

    message

  - •

    line

  - •

    column

  Note that the error gets cleared at the beginning of each `"validate"` call.

- **version()**

  Returns the version of the MSXML component that is installed

## OPTIONS

XML::Validate::MSXML takes the following options:

- strict\_validation

  If this boolean value is true, the document will be validated during parsing. Otherwise it will only be checked for well-formedness. Defaults to true.

## ERROR REPORTING

When a call to validate fails to parse the document, the error may be retrieved using last\_error.

On errors not related to the XML parsing, these methods will throw exceptions. Wrap calls with eval to catch them.

## PACKAGE GLOBALS

`$XML::Validate::MSXML::MSXML_VERSION` contains the version number of MSXML.

## DEPENDENCIES

Win32::OLE, MSXML 4.0 or 5.0

## VERSION

`$Revision:` 1.18 $ on `$Date:` 2006/04/18 10:00:31 $ by `$Author:` mattheww $

## AUTHOR

Nathan Carr, Colin Robertson

\<cpan \_at\_ bbc \_dot\_ co \_dot\_ uk\>

## COPYRIGHT

(c) BBC 2005. This program is free software; you can redistribute it and/or modify it under the GNU GPL. See the file COPYING in this distribution, or http://www.gnu.org/licenses/gpl.txt
