Ankündigung

Einklappen
Keine Ankündigung bisher.

xsd:simpleContent

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • xsd:simpleContent

    Erstmal entschuldigt falls ich in diesem Channel falsch bin. Aber ich fand hier würde mein Anliegen noch am ehesten reinpassen.


    Ich habe eine XSD
    Code:
     <xsd:complexType name="CodeType">
           <xsd:simpleContent>
               <xsd:extension base="xsd:normalizedString">
                   <xsd:attribute name="listID" type="xsd:normalizedString" use="optional"/>
                   <xsd:attribute name="listAgencyID" type="xsd:normalizedString" use="optional"/>
                   <xsd:attribute name="listAgencyName" type="xsd:string" use="optional"/>
                   <xsd:attribute name="listName" type="xsd:string" use="optional"/>
                   <xsd:attribute name="listVersionID" type="xsd:normalizedString" use="optional"/>
                   <xsd:attribute name="name" type="xsd:string" use="optional"/>
                   <xsd:attribute name="languageID" type="xsd:language" use="optional"/>
                   <xsd:attribute name="listURI" type="xsd:anyURI" use="optional"/>
                   <xsd:attribute name="listSchemeURI" type="xsd:anyURI" use="optional"/>
               </xsd:extension>
           </xsd:simpleContent>
      </xsd:complexType>
    Mit XSD kenne ich mich jetzt noch nicht so aus. Ich habe schon gegoogelt u.a. https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
    Mir ist jetzt nicht ganz klar wie <simpleContent> zu lesen ist. Wie würdet ihr das CodeType in PHP darstellen?


  • #2
    Zitat von Abo Beitrag anzeigen
    Wie würdet ihr das CodeType in PHP darstellen?
    Gar nicht. das ist eine XML Definition (vergleichbar mit einer DTD).

    Kommentar


    • #3
      Zitat von Abo
      Erstmal entschuldigt falls ich in diesem Channel falsch bin.
      Zitat von Subforum
      Wie würdet ihr das CodeType in PHP darstellen?
      ?

      [MOD: Verschoben von Javascript, ...]
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Zitat von Abo Beitrag anzeigen
        Wie würdet ihr das CodeType in PHP darstellen?
        Hängt davon ab was du machen möchtest.
        Wenn du nur an die Informationen rankommen möchtest, lege die Struktur im Orginal als Datei/String ab.
        Zum Verarbeiten wandelst du das z.B. in valides XML um:
        PHP-Code:
        $strXml preg_replace("~(<[\w /]+):([\w/]+)~""$1_$2"$strXsd); // This removes namespaces.
        $xml simplexml_load_string($strXml);
        debug::write($xml); 
        xml
        Code:
        <?xml version="1.0"?>
        <xsd_complexType name="CodeType">
          <xsd_simpleContent>
            <xsd_extension base="xsd:normalizedString">
              <xsd_attribute name="listID" type="xsd:normalizedString" use="optional"/>
              <xsd_attribute name="listAgencyID" type="xsd:normalizedString" use="optional"/>
              <xsd_attribute name="listAgencyName" type="xsd:string" use="optional"/>
              <xsd_attribute name="listName" type="xsd:string" use="optional"/>
              <xsd_attribute name="listVersionID" type="xsd:normalizedString" use="optional"/>
              <xsd_attribute name="name" type="xsd:string" use="optional"/>
              <xsd_attribute name="languageID" type="xsd:language" use="optional"/>
              <xsd_attribute name="listURI" type="xsd:anyURI" use="optional"/>
              <xsd_attribute name="listSchemeURI" type="xsd:anyURI" use="optional"/>
            </xsd_extension>
          </xsd_simpleContent>
        </xsd_complexType>
        Auf die einzelnen Informationen kannst du jetzt mit den üblichen Methoden zugreifen.

        Kommentar


        • #5
          Zitat von jspit Beitrag anzeigen
          Zum Verarbeiten wandelst du das z.B. in valides XML um:
          Naja, eine XSD ist bereits valides XML. man muss nur wissen, mit den Namespaces umzugehen.

          Kommentar


          • #6
            Nur was Abo da gezeigt hat ist auch kein valides XSD bzw. das gezeigte ist unvollständig.
            Für valides XML bieten sich dann selbstredend bessere Wege an anstelle der obgen Holzhammermethode.
            Ist mitunter aber ganz praktikabel gegenüber den Krampf mit den Namespaces.

            Kommentar


            • #7
              Ich gehe auch davon aus, dass die XSD komplett geladen wird und nicht nur dieser Ausschnitt.

              Kommentar


              • #8
                Erstmal herzlichen Dank an alle.

                Der von mir gepostete XSD stammt aus der hr-xml Definition. http://www.hropenstandards.org/

                Ich habe somit eine komplette XSD beschreibung. Ich bin jetzt im ersten Teil dabei diese in Klasse zu überführen, um sie in eine MySQL Datenbank zu speichern. Also nach dem Prinzip "contract first". Im nächsten Schnitt sollen dann alle in der mysql gespeicherten Informationen hr-xml validable ausgegeben werden.

                Kommentar


                • #9
                  Zitat von Abo Beitrag anzeigen
                  Ich bin jetzt im ersten Teil dabei diese in Klasse zu überführen
                  XML-Attribute werden dann zu Class Properties, die Datentypen muessen die Property Setter sicherstellen.

                  Zitat von Abo Beitrag anzeigen
                  um sie in eine MySQL Datenbank zu speichern.
                  XML-Attribute werden zu Spalten, bei den Datentypen musst du die entsprechenden DB-Spaltentypen setzen.

                  Kommentar


                  • #10
                    Genauso hatte ich mir das auch schon gedacht, war mir allerdings nicht 100% sicher.

                    Und wenn ich es richtig verstehe müsste die Zeile
                    Code:
                     
                      <xsd_extension base="xsd:normalizedString">
                    auch eine eigene Spalte sein, denn die attributes sind nur Erweiterungen, oder?

                    Kommentar


                    • #11
                      Zitat von Abo Beitrag anzeigen
                      Und wenn ich es richtig verstehe müsste die Zeile
                      Code:
                      <xsd_extension base="xsd:normalizedString">
                      auch eine eigene Spalte sein, denn die attributes sind nur Erweiterungen, oder?
                      Nein. Mit extension definierst du Vererbung in XSD.

                      Kommentar


                      • #12
                        Was heist das jetzt konkret???? Ich verstehe dann die Aussage des obigen Beispiels nicht. Denn bis jetzt habe ich es so verstanden, daß es ein "normalizierter" String ist der um die Felder "<xsd:attribute>...." erweitertet ist.

                        Kommentar


                        • #13
                          Es wäre sicherlich einfacher, sich mal ein gültiges XML anzuschauen ... denn schließlich stehen deine Daten dort drin und nicht im XSD.

                          Kommentar

                          Lädt...
                          X