PHPackages                             phpxmlrpc/schemas - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. phpxmlrpc/schemas

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

phpxmlrpc/schemas
=================

A collection of extensions, addons and other stuff that might be of use for development of xml-rpc (and jsonrpc, soap) based applications

00[2 issues](https://github.com/gggeek/xmlrpc-schemas/issues)

Since Jan 26Pushed 3y ago1 watchersCompare

[ Source](https://github.com/gggeek/xmlrpc-schemas)[ Packagist](https://packagist.org/packages/phpxmlrpc/schemas)[ RSS](/packages/phpxmlrpc-schemas/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

XML-RPC Schemas
===============

[](#xml-rpc-schemas)

A collection of *completely unofficial* Interface Definition Language schemas for XML-RPC.

Introduction
------------

[](#introduction)

This project is an exploration in the possibility of using existing schema languages to define XML-RPC webservices, with the end goal of both supporting existing toolchains and allowing the development of new ones which allow practices such as automated code-generation and API verification.

A brief description of the supported / tested IDL languages follows.

WSDL
----

[](#wsdl)

Might be useful in defining some WSDL file describing xmlrpc services. The XSD is not quite accurate, due to limitations in the definition language. RELAX NG should be 100% precise and accurate - but there seems to be scarcity of tools supporting usage of it in a WSDL.

Other known implementations:

- [https://learn.microsoft.com/en-us/openspecs/sharepoint\_protocols/ms-metaweb/1c3a29ca-dc34-441c-840e-cb86a72460e9](https://learn.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-metaweb/1c3a29ca-dc34-441c-840e-cb86a72460e9)

### Details

[](#details)

The XML-RPC protocol has been specified a long time ago, at the dawn of XML, and is described only in natural language. Attempts have been made to "reverse specify" it with DTD or XSD, with little success. Both definition languages are in fact too limited in their capability of expressing valid xml constructs to capture in a complete and correct fashion the XML-RPC semantics (see for more details. Suffice to say that XSD does not allow to specify two consecutive xml elements with the same name but of different types, such as the faultCode and faultReason response members happen to be).

The RELAX-NG definition language on the other hand has been found capable enough to fully describe XMLRPC, and the schema that is part of this distribution can be used to validate any XMLRPC request or response conforming to the spec. IT IS NOT AUTHORITATIVE because the XML-RPC specification is copyright by Dave Winer, and he seems to have lost interest in any further development of the protocol, but it should be considered accurate and production ready (if you find any bugs, please let the authors know).

This situation is very unfortunate, since WSDL has emerged as a widely accepted web services standard, and a plethora of tools exist to parse existing WSDL files and automatically generate code stubs or generate WSDL definitions from existing code. If a WSDL representation of XMLRPC webservices could be generated, the net result would be greatly increased interoperability between SOAP clients and toolkits and XMLRPC server implementations.

Even though the apparent goal of the WSDL language design was to allow description of every possible message exchange, using every conceivable xml serialization over any transport (and a lot of the redundancy, verbosity and complication of the language are direct consequence of the flexibility sought), existing implementations de-facto only support the SOAP binding for webservices, and XSD as language definition schema. RELAX-NG, while nominally accepted, has yet to find widespread usage in webservices toolkits. This leaves us with almost-but-not-quite interoperable solutions.

### File list

[](#file-list)

- schema.rnc: the same RELAX NG schema definition as found in schema.rng, using ... notation
- schema.rng: a RELAX NG schema definition describing XMLRPC (using xml notation)
- xmlrpc.wsdl: a XML Schema Definition attempting to describe XMLRPC method calls and responses
- xmlrpc.xsd: a XML Schema Definition attempting to describe XMLRPC

Other IDLs
----------

[](#other-idls)

### XRDL

[](#xrdl)

Originally hosted at , the project seems to have been dormant for some time. There are forks on GitHub, such as , which also seem not very actively maintained.

### system.describeMethods

[](#systemdescribemethods)

The specification is available at . To the best of my knowledge, it was never implemented outside the xmlrpc-epi C library.

Other resources
---------------

[](#other-resources)

### Converting XML-RPC to SOAP

[](#converting-xml-rpc-to-soap)

An XSLT file is available at

A guide on how to achieve interoperability with SOAP (letting SOAP clients send requests to XML-RPC servers) can be found at

[![License](https://camo.githubusercontent.com/3180d98ae73e3f3257dd9a35726af0fc4cb5165002cb04bfe48f24e227df4dee/68747470733a2f2f706f7365722e707567782e6f72672f706870786d6c7270632f736368656d61732f6c6963656e7365)](https://packagist.org/packages/phpxmlrpc/schemas)[![Total Downloads](https://camo.githubusercontent.com/1998f5a794184071f1577a876b2ef31bdbfa5da93b6846a88c56caeeeaf7c396/68747470733a2f2f706f7365722e707567782e6f72672f706870786d6c7270632f736368656d61732f646f776e6c6f616473)](https://packagist.org/packages/phpxmlrpc/schemas)

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/f641f7d6edabf83c56f6c4998b04e6c59a00b46bf51ca6699c31b09f9c948677?d=identicon)[gggeek](/maintainers/gggeek)

---

Top Contributors

[![gggeek](https://avatars.githubusercontent.com/u/308634?v=4)](https://github.com/gggeek "gggeek (5 commits)")

### Embed Badge

![Health badge](/badges/phpxmlrpc-schemas/health.svg)

```
[![Health](https://phpackages.com/badges/phpxmlrpc-schemas/health.svg)](https://phpackages.com/packages/phpxmlrpc-schemas)
```

###  Alternatives

[juststeveking/laravel-data-object-tools

A set of tools to make working with Data Transfer Objects easier in Laravel

6714.4k5](/packages/juststeveking-laravel-data-object-tools)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
