RPC::XM...MLLibXML(3)

okay so you're reading RPC::XM...MLLibXML(3) 🌈

Bestie, this is the User Contributed Perl Documentation page for RPC::XML::Parser::XMLLibXML β€” a container class for XML::LibXML β€” and yes, the manual name up top is the slightly cursed-looking RPC::XM...MLLibXML(3). No cap, we're getting into it. 🫢


🌸 NAME 🌸

RPC::XML::Parser::XMLLibXML β€” a container class for XML::LibXML. That's the whole name vibe. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

This class should rarely (if ever) be used directly, okay? Like, it's giving "please don't touch unless you know what you're doing" energy. πŸ’…

# This class should rarely (if ever) be used directly:

use RPC::XML::ParserFactory 'XML::LibXML';
...
$P = RPC::XML::ParserFactory->new();
$P->parse($message);

πŸ’– DESCRIPTION πŸ’–

This class implements the interface defined in the RPC::XML::Parser factory-class (see RPC::XML::Parser) using the XML::LibXML module to handle the actual manipulation of XML. So it's the LibXML-flavored implementation bestie, doing the XML wrangling behind the scenes. 🧚


πŸŽ€ SUBROUTINES/METHODS πŸŽ€

This module implements the public-facing methods as described in RPC::XML::Parser:

new [ ARGS ]

The constructor only recognizes the two parameters specified in the base class (for the RPC::XML::base64 file-spooling operations). That's the whole arg menu. πŸ“

parse [ STRING | STREAM ]

The parse() method accepts either a string of XML, a filehandle of some sort, or no argument at all. In the latter case, the return value is a parser instance that acts as a push-parser (a non-blocking parser). For the first two types of input, the return value is either a message object (one of RPC::XML::request or RPC::XML::response) or an error. So: string or filehandle = parse it, no arg = push-parser era. Iconic. πŸ‘‘

parse_more STRING

(Only callable on a push-parser instance) Parses the chunk of XML, which does not have to describe a complete document, and adds it to the current running document. If this method is called on a parser instance that is not a push-parser, an exception is thrown. So don't call it on a regular parser, bestie β€” it will throw hands. 😭

parse_done

(Only callable on a push-parser instance) Finishes the parsing process and returns either a message object (one of RPC::XML::request or RPC::XML::response) or an error (if the document was incomplete, not well-formed, or not valid). If this method is called on a parser instance that is not a push-parser, an exception is thrown. Same deal: push-parser only, or it's an exception situation. πŸ’€


πŸ”₯ DIAGNOSTICS πŸ”₯

All methods return some type of reference on success. The new and parse methods return an error string on failure. The parse_more and parse_done methods may throw exceptions, if the underlying XML::LibXML parser encounters a fatal error. So success = reference, failure = error string or exception depending on the method. Vibe check accordingly. 🌈


πŸ’œ EXTERNAL ENTITIES πŸ’œ

As of version 1.15 of this module (version 0.75 of the RPC::XML suite), external entities whose URI is a file:/ scheme (local file) are explicitly ignored. This is for security purposes. Ngl, that's a security slay. πŸ”’


πŸ¦‹ BUGS πŸ¦‹

Please report any bugs or feature requests to "bug-rpc-xml at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=RPC-XML>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. So yes, the feedback loop is giving main character energy. πŸ’Œ


🌟 SUPPORT 🌟

All the support links, bestie: 🫢


This file and the code within are copyright (c) 2011 by Randy J. Ray.

Copying and distribution are permitted under the terms of the Artistic License 2.0 (<http://www.opensource.org/licenses/artistic-license-2.0.php>) or the GNU LGPL 2.1 (<http://www.opensource.org/licenses/lgpl-2.1.php>). Legal bestie moment, but make it iconic. πŸ“œ


🧚 CREDITS 🧚

The XML-RPC standard is Copyright (c) 1998-2001, UserLand Software, Inc. See <http://www.xmlrpc.com> for more information about the XML-RPC specification. Shoutout to the OGs. 🫑


🌈 SEE ALSO 🌈

  • RPC::XML
  • RPC::XML::Parser
  • XML::LibXML

πŸ‘‘ AUTHOR πŸ‘‘

Randy J. Ray <rjray@blackperl.com>. Legend. πŸ’–


mwah πŸ’‹ β€” this page is perl v5.42.0, dated 2021-04-08, and the manual name is RPC::XM...MLLibXML(3). That's the whole footer vibe, bestie. Slay and stay parse-y. ✨

πŸ“¦ where this page comes from