Help! (xml xsd php)

Adott egy xsd fájl, (XML Schema Definition.)
A feladatom az, hogy egy php5-ös alkalmazásból le kell generálnom egy formot, aminek alapján le kell gyártanom egy XML-t ami megfelel az XSD-nek.
Ha van valakinek ötlete, szívesen fogadom.


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="document">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="header"/>
        <xs:element name="generalData"/>
        <xs:element name="specialData">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="group1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="ido" type="xs:date"/>
                    <xs:element name="userType">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="admin"/>
                          <xs:enumeration value="user"/>
                          <xs:enumeration value="guest"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="group2">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="price" type="xs:integer"/>
                    <xs:element name="description" type="xs:string"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Hozzászólások

up
Ami elől menekülnek, az után szaladnak.

A probléma ott van, hogy a specialData rész nem állandó, az xsd-tket is program generálja. Annyi megkötése van, hogy a specialData részben csoportok lehetnek (name="group{1,2,3....}"), nem tudjuk mennyi, azokban meg integer, enum, string típusok. Ennek megfelelően kellene kiraknom a formot.
Nem találtam olyat pl a simplexml-ben, hogy ha van egy node-om, akkor azon hogyan tudok foreach-cal pl végignézni, hogy hány subnode-ja van, hogyan tudom bejárni az xml nodeokat valamely node-tól lefele.

Szerintem eleve úgy nevezd el a form elemeit, hogy tükrözzék az xml hierarchiát. Utánna már csak be kell járni és felépíteni belőle a dom-ot.

Esetleg lehet azt is, hogy a form-ot is mint xml-t gyártod le és xslt-vel csinálsz belőle html-t. Mondjuk lehet a hagyományos út egyszerűbb.