世界には、JavaBeansまたはJAXB for PHPに類似したものはありますか? XMLスキーマからPHPクラスを生成することは可能ですか?
APIをXSDスキーマとして公開することは一般的な方法です。 JavaおよびC#の人は、XSDから直接クラスを生成することでこれを利用できます。PHPに同じツールはありますか?
更新。私は最初の実用的なプロトタイプをリリースしました。UBL2.0スキーマと1つの単純なスキーマで問題なく動作しますが、より深刻なテストが進行中です。作業中のスキーマを送信していただければ幸いです。そのため、テストスイートに含めます。
更新。 2. XSD2PHPはバージョン0.0.5に達しました。 https://github.com/moyarada/XSD-to-PHP で進行状況を確認します
XSDクラスジェネレーターを使用する主な理由は、
これをPHPと比較してください。 PHPははありませんコンパイル時のチェックがあり、動的メソッド/プロパティのサポートがあります。これにより、上記の2つの主な理由が無効になり、本当に自動補完が必要でない限り、これは問題になりません。つまり、PHPでXSDクラスジェネレーターを使用する理由があります。そしてそれがおそらく何も存在しない理由でもあります。
私の提案は、PHPを使用することです Simple XML これは、実行時に動的にXMLに一致するプロパティを作成します。 XSDファイルに対してXMLを検証してからシンプルXMLオブジェクトを作成すると、コードを生成することなく、メソッドとプロパティを備えたXMLオブジェクト構造が完成します。 PHPでの完璧なアプローチ。
もちろん、SimpleXMLが生成されたXSDクラスと同じであるとは述べていません。しかし、使用方法とAPIに関してはかなり近いです。あなたはまだ$company->employee[2]->firstname
どちらにしても。
これはまともな仕事をしているようです https://github.com/goetas-webservices/xsd2php
列挙検証を処理したいのですが、私のユースケースでは問題なく動作するように見えました。生成するMETA .ymlファイルが役に立った。
XSDスキーマは通常、SOAP Webサービス上のWSDLファイルに書き込まれます。
wsdl2phpは、WSDL(XSD)スキーマをphpクラスに解析するためのツールです。 phpのネイティブSoapClientをクライアントとして使用します。
Wsdl2phpの簡単なチュートリアルと使用法については、この投稿を確認してください。
http://itworkarounds.blogspot.com/2011/10/simple-soap-client-with-wsdl2php-using.html
このライブラリは、今日の最良の選択のようです: https://github.com/goetas/xsd2php
PHP XML要素のクラスを生成し、前後に変換できます:
XML-> PHP-> XML
しばらく前に調べたところ、確かに見つかりませんでした。スキーマが単純な場合、フラットスキーマの 単純なバージョンをハッキングした の人がいます。
それは私が知っているすべてです。通常 これらの人 は主要言語以外の言語をサポートするのが得意ですが、PHPもサポートしていません。
DMS Software Reengineering Toolkit は、構成可能なコード生成機構であり、任意の正式なドキュメントを入力として処理するために使用できます。 DMSは、任意の出力言語でコードを生成するために使用できます。
これを使用して、ネイティブのJavaおよびスキーマの古い従兄弟であるDTDからのCOBOL XMLリーダーおよびライターを生成しました。PHPにも同じ考え方を簡単に適用できます。