Manfred: XML-Schema und DTD zugleich und andere Fragen...

Moin!

Ich habe da mal eine Frage:
Ist es sinnvoll eine bestehende DTD um ein XML-Schema zu ergänzen? Also wenn ich beispielsweise ein XML-dokument habe:

<?xml version="1.1"?>
<!DOCTYPE hallo SYSTEM "hallo.dtd">
<hallo>Hallo Leute</hallo>

und hallo.dtd:

<!ELEMENT hallo (#PCDATA)>

Dazu soll jetzt noch ein XML-Schema, wie z.B.

<xs:element name="hallo" type="xs:string"/> kommen. Spricht dagegen was oder ist es überhaupt nicht sinnvoll?

Außerdem frage ich mich, wie ich Einheiten wie MB, Mhz am besten unterbinge. Ich habe z.B. ein element wie:

<speicher name="Samsung" groesse="512MB"/>
Nun soll für groesse z.B. nur ein Integer eingegeben werden, was ja wegen dem bezeichner MB dann nicht möglich ist. Versteht ihr was ich meine? WIe löse ich das am besten?

Cya

  1. Hi,

    ich persönlich halte die Mischung für ungeschickt (obs funktioniert, ich nehm's an), weil man nach kurzer Zeit darin die Übersicht verlieren wird. Ich stimme zwar zu, dass XML-Schema ab einer bestimmten Größe recht wirr wird, aber ich persönlich arbeite doch recht gerne damit, weil es mir erlaubt recht präzise zu formulieren, was ich erwarte.

    Zu deinem Größenproblem: XML-Schema halt. Erstelle eine Element Speicher mit Attributen Name, Groesse und Einheit, und schränke die Einheit im Schema mittels enumeration auf z.B. KB, MB, GB ein. Wenn du das öfter brauchst, dann definiere dir einen Simple-Type für Größen, Takte etc. und verwende ihn als type.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Hallo,

    Ich habe da mal eine Frage:
    Ist es sinnvoll eine bestehende DTD um ein XML-Schema zu ergänzen?

    Du kannst etweder eine DTD oder eine Schema verwenden, aber nicht beides gleichzeitig.

    Außerdem frage ich mich, wie ich Einheiten wie MB, Mhz am besten unterbinge. Ich habe z.B. ein element wie:

    <speicher name="Samsung" groesse="512MB"/>
    Nun soll für groesse z.B. nur ein Integer eingegeben werden, was ja wegen dem bezeichner MB dann nicht möglich ist. Versteht ihr was ich meine? WIe löse ich das am besten?

    Wenn du explizite Typenzuweisungen, wie Integer, String etc. brauchst, ist XML-Schema die Wahl.

    z.B.: <speicher name="Samsung" einheit="MB">512</speicher> oder eben mit
    <speicher name="Samsung" einheit="MB" groesse="512"/>

    Grüße
    Thomas

    --
    Surftip: kennen Sie schon Pipolino's Clowntheater?
    http://www.clowntheater-pipolino.net/