12
votes

Transformer un modèle XSD en une instance XML en PHP

J'ai un ou plusieurs fichiers XSD, et j'ai besoin de générer un exemple de fichier XML valide à partir de ce fichier XSD. Par exemple, étant donné le XSD suivant: xxx

générer le XML suivant: xxx

J'ai recherché une solution dans PHP qui est capable d'effectuer cela, mais seulement de survenir deux solutions possibles mais sans succès.

  1. Utilisation SDO_DAS_XML. Toutefois, cela dépend de la disponibilité de la THA de php_sdo.dll, à laquelle il ne semble pas être une version qui fonctionne réellement sur Windows.

  2. second essai était de regarder github.com/moyarada/xsd-to-phphp ou forums.devshed.com/php-development-5/xml-schema-binding-a-php-code-jaxb-equivalent-199799.html Cependant, ceux-ci sont ciblés à l'analyse XSD et à la transformation des classes de PHP et ne semblent pas être génériques enoguh pour transformer tout XSD en une simple xml propre (comme ci-dessus).

    Des idées ou des solutions sont très appréciées :)

    merci!


1 commentaires

Je vais clarifier que j'ai besoin de la forme la plus simple de ce XSD généré comme xml vide selon les règles XSD (y compris les valeurs par défaut / fixe, les attributs, etc.)


3 Réponses :


0
votes

Je n'ai rien trouvé dans php mais je suis tombé sur ceci - http://sourceforge.net/projects / CamProcessor /

C'est en Java, mais comme source ouverte, vous pouvez essayer de trouver une classe Java exacte utilisée pour la génération d'échantillons XML à partir de XSD donné. Après que la logique de la même classe puisse être mise en œuvre dans PHP.

Peut sembler impraticable, mais cela est fermé, je pourrais obtenir! : |


0 commentaires

1
votes

J'ai constaté que la seule façon raisonnable d'effectuer cette tâche est de traiter votre XSD comme n'importe quel XML, utilisez DOMDocument pour analyser et construire vos instances XML spécialisées.

  • Cette méthode suppose que votre XSD aura toujours la même structure, seuls des noms différents aux champs, et que vous êtes intéressé par une forme très simple d'instance XML, ce qui signifie les nœuds et rien de plus.
  • L'avantage de cette méthode est en flexibilité, modifier simplement la boucle de Forache pour modifier votre structure spéciale. xxx

0 commentaires

1
votes

Je suis tombé sur votre quête pour trouver une solution parce que j'en avais besoin moi-même.

Pour tout le monde dans la quête de trouver une solution:

trouvé XSD2POWP original et le fourrit pour mieux adapter mes besoins Version mise à jour .


0 commentaires