{
    "content": [
        {
            "type": "text",
            "text": "# SOAP::Schema (perldoc)\n\n## NAME\n\nSOAP::Schema - provides an umbrella for the way in which SOAP::Lite manages service description schemas\n\n## DESCRIPTION\n\nThis class provides an umbrella for the way in which SOAP::Lite manages service description\nschemas. Currently, the only support present is for the Web Services Description Language\n(WSDL). This is another of the classes not generally designed to be directly instantiated by an\napplication, though it can be if so desired.\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION**\n- **METHODS** (4 subsections)\n- **ACKNOWLEDGEMENTS**\n- **COPYRIGHT**\n- **AUTHORS**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "SOAP::Schema",
        "section": "",
        "mode": "perldoc",
        "summary": "SOAP::Schema - provides an umbrella for the way in which SOAP::Lite manages service description schemas",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "new",
                        "lines": 7
                    },
                    {
                        "name": "parse",
                        "lines": 5
                    },
                    {
                        "name": "access",
                        "lines": 62
                    },
                    {
                        "name": "useragent",
                        "lines": 17
                    }
                ]
            },
            {
                "name": "ACKNOWLEDGEMENTS",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "AUTHORS",
                "lines": 6,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "SOAP::Schema - provides an umbrella for the way in which SOAP::Lite manages service description\nschemas\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This class provides an umbrella for the way in which SOAP::Lite manages service description\nschemas. Currently, the only support present is for the Web Services Description Language\n(WSDL). This is another of the classes not generally designed to be directly instantiated by an\napplication, though it can be if so desired.\n",
                "subsections": []
            },
            "METHODS": {
                "content": "",
                "subsections": [
                    {
                        "name": "new",
                        "content": "$schema = SOAP::Schema->new(parse => $schemauri);\n\nThis is the class constructor. With no arguments, it creates a blank object of the class.\nAny arguments that are passed are treated as key/value pairs in which the key represents one\nof the methods described here, and the value is what gets passed when the method itself gets\ninvoked.\n"
                    },
                    {
                        "name": "parse",
                        "content": "$schema->parse('http://schemas.w3.org/soap.wsdl');\n\nParses the internal representation of the service description prior to the generation of\nstub routines to provide method-like access to the remote services.\n"
                    },
                    {
                        "name": "access",
                        "content": "$schema->access('http://soap.org/service.wsdl');\n\nLoads the specified service description from the given URL, using the current value of the\nschema accessor if none is provided. The full content of the URL is returned on success, or\nan exception is thrown (via \"die\") on error.\n\nload\n$schema->load;\n\nTakes the internal representation of the service and generates code stubs for the remote\nmethods, allowing them to be called as local object methods. Stubs are generated for all the\nfunctions declared in the WSDL description with this call because it's enough of a class\nframework to allow for basic object creation for use as handles.\n\nschema\n$currentschema = $schema->schema;\n\nGets (or sets) the current schema representation to be used by this object. The value to be\npassed when setting this is just the URI of the schema. This gets passed to other methods\nsuch as access for loading the actual content.\n\nservices\n$hashref = $schema->services;\n\nGets or sets the services currently stored on the object. The services are kept as a hash\nreference, whose keys and values are the list of returned values from the WSDL parser. Keys\nrepresent the names of the services themselves (names have been normalized into\nPerl-compatible identifiers), with values that are also hash references to the internal\nrepresentation of the service itself.\n\nstub\nReturns the autogenerated Perl code as a string. This code is generated from the WSDL\nprovided by the \"service\" method call. The code contains a package definition for the\nservice being called.\n\nmy $client = SOAP::Lite->new;\nmy $code = $client->service($WSDLURL)->stub;\nopen FILE,\">ServicePackage.pm\";\nprint FILE $code;\nclose FILE;\n\ncachedir\nSets/retrieves the value of the directory where generated stubs will be cached. If\n\"cachedir\" is null, then no caching will be performed.\n\nmy $client = SOAP::Lite->new;\nmy $code = $client->cachedir(\"/tmp\")->service($WSDLURL)->stub;\n\nIf \"cachedir\" is undefined, no caching will take place.\n\ncachettl\nSets/retrieves the value of the time to live (in seconds) for cached files. This is only\nrelevant when used in conjunction with \"cachedir\".\n\nIf \"cachettl\" is set to 0, the cache will never expire. Files will have to be removed\nmanually in order for the cache to be refreshed.\n\nmy $client = SOAP::Lite->new;\nmy $code = $client->cachettl(3600)->cachedir(\"/tmp\")->service($WSDLURL)->stub;\n\nThe default time to live is 0.\n"
                    },
                    {
                        "name": "useragent",
                        "content": "my $client = SOAP::Lite->new;\n$ua = $client->schema->useragent;\n$ua->agent(\"Fubar! 0.1\");\nmy $response = $client->service(\"http://localhost/some.wsdl\")\n->someMethod(\"Foo\");\n\nGets or sets the classes UserAgent used for retrieving schemas over the web. This allows\nusers to have direct access to the UserAgent so that they may control the credentials passed\nto a remote server, or the specific configuration of their HTTP agent.\n\nSOAP::Schema::WSDL\nAt present, the SOAP::Lite toolkit supports only loading of service descriptions in the WSDL\nsyntax. This class manages the parsing and storing of these service specifications. As a general\nrule, this class should be even less likely to be used directly by an application because its\npresence should be completely abstracted by the previous class (SOAP::Schema). None of the\nmethods are defined here; the class is only mentioned for sake of reference.\n"
                    }
                ]
            },
            "ACKNOWLEDGEMENTS": {
                "content": "Special thanks to O'Reilly publishing which has graciously allowed SOAP::Lite to republish and\nredistribute large excerpts from *Programming Web Services with Perl*, mainly the SOAP::Lite\nreference found in Appendix B.\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright (C) 2000-2004 Paul Kulchenko. All rights reserved.\n\nThis library is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself.\n",
                "subsections": []
            },
            "AUTHORS": {
                "content": "Paul Kulchenko (paulclinger@yahoo.com)\n\nRandy J. Ray (rjray@blackperl.com)\n\nByrne Reese (byrne@majordojo.com)\n",
                "subsections": []
            }
        }
    }
}