Skip to content
moyarada edited this page Aug 23, 2010 · 36 revisions

Legko XML - XSD to PHP compile

Overview

XSD to PHP is a set of classes which allow you to compile XSD schemas to PHP classes, marshal PHP classes to XML, and unmarshal XML to PHP classes.

Features

  • Compile XSD schemas to PHP models
  • XML marshalling
  • XML unmarshalling

Requirements

  • PHP 5.3 or higher, due to heavy use of PHP namespaces
  • XSL extension, libxslt 1.1.x - tested on 1.1.23
  • LibXML extension, version 2.6.x, tested on 2.6.32
  • DOM extension
    • XPath Support enabled
    • Schema Support enabled

Planned features

Create XSD schema from PHP classes

Usage

Compile schema

   use com\mikebevz\xsd2php;
   $xsd2php = new xsd2php\Xsd2Php("path/to/schema.xsd");
   $xsd2php->saveClasses("path/to/generated/files", true);

Second argument in saveClasses method defines whether create a directory if it doesn't exist. See test/Xsd2PhpTest.php for examples.

Marshalling XML

On example of UBL Order schema:

   use com\mikebevz\xsd2php;
   use oasis\names\specification\ubl\schema\xsd\Order_2;
   $order = new Order_2\Order(); // Generated PHP model
   // set $order properties here
   $php2xml = new xsd2php\Php2Xml();
   $xml = $php2xml->getXml($order);

Unmarshalling XML

   use com\mikebevz\xsd2php;
   $xml = file_get_contents('path/to/your.xml');
   $model = new yourModel();
   $bind = new xsd2php\Bind();  
   $myUnmarshalledModel = $bind->bindXml($xml, $model);

Running tests

From command line

 $ phpunit

will start all available tests.

Clone this wiki locally