php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 25-03-2008, 10:22
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard XML-Schema

kennt sich hier zufällig jemand mit der erstellung von xml-schemas aus?
ich habe eine relativ einfache aufgabenstellung, nur die lösung scheint nicht so einfach zu sein.

also gegeben ist eine mysql-tabelle, vereinfacht so:
Code:
ID | Wert
---------
1  | Wert zur ID 1
2  | Wert zur ID 2
dazu habe ich ein php-script geschrieben, welches den inhalt als xml-datei exportiert. das ergebnis sieht dann so aus:
PHP-Code:
<ID_und_Wert>
    <
ID>1</ID>
    <
Wert>Wert zur ID 1</Wert>
</
ID_und_Wert>
<
ID_und_Wert>
    <
ID>2</ID>
    <
Wert>Wert zur ID 3</Wert>
</
ID_und_Wert
zur späteren validierung der exportdatei wollte ich dazu ein möglichst restriktives xml-schema erstellen.
bisher habe ich das:
PHP-Code:
<xs:element name="ID_und_Wert">
   <
xs:complexType>
      <
xs:all>
         <
xs:element name="ID">
            <
xs:simpleType>
               <
xs:restriction base="xs:int">
                  <
xs:enumeration value="1" />
                  <
xs:enumeration value="2" />
               </
xs:restriction>
            </
xs:simpleType>
         </
xs:element>
         <
xs:element name="Wert">
            <
xs:simpleType>
               <
xs:restriction base="xs:string">
                  <
xs:enumeration value="Wert zur ID 1" />
                  <
xs:enumeration value="Wert zur ID 2" />
               </
xs:restriction>
            </
xs:simpleType>
         </
xs:element>
      </
xs:all>
   </
xs:complexType>
</
xs:element
die ids bzw. werte schränke ich durch die aufzählung aller möglichen values ein. allerdings wird bei diesem schema nicht die beziehung id zu wert beachtet.
also, wenn id = 1, dann muss der zwingend wert = "Wert zur ID 1" sein und nicht etwa "Wert zur ID 2".

weiß jemand, wie ich diese einschränkende beziehung in einem xml-schema formulieren kann?
Mit Zitat antworten
  #2 (permalink)  
Alt 25-03-2008, 13:45
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dein Schema hat schon von Grund auf einen Fehler: Andere IDs als 1 respektive 2 (bzw. andere Werte) sind nicht zugelassen. Die Beziehung ist doch schon durch die Unterordnung in ID_und_Wert gegeben - warum sollten da andere Kombinationen möglich sein?
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #3 (permalink)  
Alt 25-03-2008, 14:14
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von tontechniker
[B]Die Beziehung ist doch schon durch die Unterordnung in ID_und_Wert gegeben - warum sollten da andere Kombinationen möglich sein?
ja, da hast du recht, es sind garkeine anderen kombinationen möglich.

was aber durchaus vorkommen kann und auch vorkommt, ist, dass sich der Wert zu einer id im laufe der zeit ändert. und dann soll einen spätestens die fehlgeschlagene validierung darauf aufmerksam machen, dass sich etwas am schema geändert hat.
ist quasi nur zur zusätzlichen sicherheit, falls man etwas an der datenbank geändert hat und vergessen hat, diese änderungen auch am schema vorzunehmen.
Mit Zitat antworten
  #4 (permalink)  
Alt 25-03-2008, 19:16
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Korrigier mich, aber das Schema hat doch afaik absolut nichts mit den Inhalten zutun. Wenn du irgendwelche Änderungen prüfen willst leg dir eine die XML Datei beiseite und guck dir die Differenz an.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #5 (permalink)  
Alt 25-03-2008, 20:17
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von tontechniker
Korrigier mich, aber das Schema hat doch afaik absolut nichts mit den Inhalten zutun.
und womit hat es deiner meinung nach etwas zu tun?
XML Schema
Zitat:
XML Schema ist eine Empfehlung des W3C zum Definieren von Strukturen für XML-Dokumente.
aber eigentlich wollte ich nicht erklären, was ein xml-schema ist, sondern war eher an einer problemlösung interessiert
Mit Zitat antworten
  #6 (permalink)  
Alt 25-03-2008, 21:44
ZombieChe
 Member
Links : Onlinestatus : ZombieChe ist offline
Registriert seit: Apr 2004
Ort: Hannover
Beiträge: 225
ZombieChe ist zur Zeit noch ein unbeschriebenes Blatt
ZombieChe eine Nachricht über ICQ schicken
Standard

Also IMHO ist ein XML Schema absolut die falsche Adresse, um zu prüfen, ob die XML Datei mit den richtigen Inhalten, Beziehungen o.ä. gefüllt ist. Wie der Name schon sagt gehts doch darum, zu definieren welche Art von Daten in welcher Reihenfolge etc. erlaubt sind, analog etwa zu der Definition von DB Tabellenstrukturen. Wenn du in nem DBMS eine Tabelle anlegst, gibst du da schließlich auch nicht an, dass nur die einen Werte mit ganz bestimmten anderen in einem Datensatz stehen dürfen.

Bei der Validierung geht es eben um diese Struktur und bestenfalls noch, welche Werte wo erlaubt sind, aber darüber hinaus sollte man es bleiben lassen.

Falls doch, sollte das doch mit nem xs:choice gehen, wo dann eben alle möglichen Kombinationen aufgezählt werden. Hat für mich dann aber nix mehr mit einem Schema zu tun...
Mit Zitat antworten
  #7 (permalink)  
Alt 25-03-2008, 23:32
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
und womit hat es deiner meinung nach etwas zu tun?
Struktur != Inhalte
Zitat:
quote:XML Schema ist eine Empfehlung des W3C zum Definieren von Strukturen für XML-Dokumente. aber eigentlich wollte ich nicht erklären, was ein xml-schema ist, sondern war eher an einer problemlösung interessiert
Wenn das Problem das genau das ist, was du beschrieben hast solltest du am besten eine die XML in dem Status ablegen, bei der "Validierung" parsen und mit der aktuellen Version vergleich, also prüfen ob die Werte zu den IDs sich geändert haben. Ein XML Schema ist an dieser Stelle imho unangebracht.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #8 (permalink)  
Alt 26-03-2008, 10:21
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ZombieChe
Wenn du in nem DBMS eine Tabelle anlegst, gibst du da schließlich auch nicht an, dass nur die einen Werte mit ganz bestimmten anderen in einem Datensatz stehen dürfen.
naja, indirekt schon.
die o.g. tabelle beinhaltet die optionswerte für eine drop-down-list. in einer weiteren formulartabelle wird die options-id einem formular zugeordnet. die options-id ist dabei ein fremdschlüssel. damit ist eine eindeutige beziehung der id zum options-wert hergestellt.

Zitat:
Original geschrieben von tontechniker
Wenn das Problem das genau das ist, was du beschrieben hast ...
nachdem ich drüber geschlafen habe, ist das eigentliche "problem" doch ein anderes
zum einen gings mir natürlich darum, dass eine änderung an der mysql-tabelle vom xml-schema "erkannt" wird, so dass die gegenpartei weiß, "aha, hier hat sich etwas geändert". das deckt ja mein obiges schema bereits ab.

jetzt wäre es noch schön, wenn das schema "selbsterklärend" ist. also die id-werte-paare aus dem schema hervorgehen, wie in einer mysql-tabelle eben. so dass du aus dem schema ablesen kannst, welche id/werte von der drop-down-list kommen können. ansonsten müsste ich dir zusätzlich noch eine separate übersicht zukommen lassen, in der diese beziehung erklärt ist (exceltabelle, worddokument ...).

aber ich werde es jetzt letztendlich wohl doch so lösen.
ich danke euch beiden.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:52 Uhr.