Beruflich Dokumente
Kultur Dokumente
1. DAMEL
Aufgabe 4
Sprache der Marke
DTD
UND
XML
SCH
EMA
1
<Drucker>.
<drucker numSeries="i245" type="laser" purchase="2010">
<brand>Epson</brand>.
<model>EPL300</model>.
<weight>4.52</weight>.
<size>A4</size>.
<size>A5</size>.
</cartridge>C-123BV</cartridge>.
<Netz/>
</printer>.
<Drucker numSerie="i246" type="dot matrix">
<brand>HP</brand>.
<Modell>LaserJet 2410</Modell>.
<weight>3.2</weight>.
<size>A4</size>.
</cartridge>C-456P</cartridge>.
</printer>.
</printers>.
Schreiben Sie ein XML-Schema für diese Dateien, wobei Sie die am besten geeigneten
Datentypen auswählen und berücksichtigen müssen, dass:
• Das Gewicht ist eine positive Zahl mit maximal zwei Dezimalstellen.
• Es kann mehr als eine Größe geben.
• Das Attribut "Typ" kann nur die Werte "Matrix", "Laser" und "Tinte" annehmen.
Sie ist obligatorisch.
• Das Attribut numSeries ist obligatorisch und dient als Bezeichner.
• Die Kartusche besteht aus einem großen C, einem Bindestrich, drei Zahlen und
einem oder zwei Großbuchstaben.
• Alle Elemente sind obligatorisch, mit Ausnahme von enred.
• Das Element enred ist optional. Wenn vorhanden, ist es ein leeres Element.
• Das fakultative Attribut Kauf speichert das Jahr des Kaufs. Sie ist eine positive
ganze Zahl.
• Jede Datei enthält Daten für einen oder mehrere Drucker.
2
XML SCHEMA
Das übergeordnete Element ist <xs:schema> und muss Deklarationen für alle in
der XML-Datei enthaltenen Elemente enthalten.
<printer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Document1.xsd"> <!--Link mit relativem
3
<brand>Epson</brand>.
<model>EPL300</model>.
<weight>4.52</weight>.
<size>A4</size>.
<size>A5</size>.
</cartridge>C-123BV</cartridge>.
<Netz/>
</printer>.
<brand>HP</brand>.
<Modell>LaserJet 2410</Modell>.
<weight>3.2</weight>.
<size>A4</size>.
</cartridge>C-456P</cartridge>.
</printer>.
</printers>.
Ich habe Kommentare wie diesen hinzugefügt:<! > obwohl diese Art von
Kommentaren vorzuziehen ist, da sie umsetzbar sind und strukturiert werden
können:
<xs:annotation>
<xs:documentation>
Eine Liste von Druckern definieren Pilar Alonso Suela Aufgabe 04.1 DAMEL
</xs:documentation>
</xs:annotation>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="drucker">
<xs:complexType>
<xs:sequence>
<!--hier verweisen wir auf das Drucker-Element, die Verweise sind eine
Möglichkeit, das XML-Schema besser lesbar zu machen.es wird Daten für einen
oder mehrere Drucker geben-->>.
</xs:sequence>
5
</xs:complexType>
</xs:element>
<xs:element name="drucker">
<xs:complexType>
<xs:sequence>
<!-das Gewicht muss eine positive Zahl mit höchstens zwei Dezimalstellen
sein und muss innerhalb von xs:restriction angegeben werden-->
<xs:minInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
6
<xs:pattern value="[C][\-][0-9][0-9][0-9][A-Z]{1,2}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<!---Attribute -->
<!-das Attribut "Seriennummer" muss obligatorisch sein und dient auch als
Druckerkennzeichen-->
<xs:simpleType>
</xs:restriction>
</xs:simpleType>
</xs:attribut>
<!--Das Attribut type muss obligatorisch sein und darf nur die Werte dot matrix,
laser und ink enthalten-->.
<xs:enumeration value="laser"/>
<xs:enumeration value="ink"/>
7
</xs:restriction>
</xs:simpleType>
</xs:attribut>
</xs:complexType>
</xs:element>
</xs:schema>
<seriellKopf/>
</participant>.
<Teilnehmer idP="j02" couple="j01">
<Vorname>Manuel Gómez</Vorname>.
<Alter>25</alter>.
<Land>Spanien</Land>.
</participant>.
<Teilnehmer idP="j03" couple="j04">
<Vorname>Ana Puertas</Vorname>.
<Alter>22</alter>.
<Land>E5spain</Land>.
<seriellKopf/>
</participant>.
<Teilnehmer idP="j04" couple="j03">
<Vorname>Paco Fraile</Vorname>.
<Alter>45</alter>.
8
<Land>Spanien</Land>.
</participant>.
</tournament>.
Schreiben Sie eine geeignete DTD für diese Dateien, wobei zu beachten ist, dass:
DTD
Eine DTD ist ein Dokument mit der Erweiterung .dtd, das dafür sorgt, dass die XML-
Daten den in der DTD festgelegten Beschränkungen entsprechen.
In diesem Fall habe ich es intern in der xml deklariert, aber es ist auch möglich, es extern
als einfaches Textdokument mit einer .dtd-Erweiterung zu deklarieren.
Terminalelemente (die keine Elemente enthalten) werden wie folgt deklariert: <!
ELEMENT data_type_name>.
Wir werden auch Entitäten erstellen, die mit konstanten Werten arbeiten.
AUFGABENANFORDERUNGEN
Da das Turnier Teilnehmer haben muss, verwenden wir > +, um ein Minimum von 1
oder mehr in der Kardinalität des Turnierelements festzulegen.
Innerhalb des Elements participant müssen alle enthaltenen Elemente mindestens einmal
vorkommen (+), und das Element headOfSeries ist optional, daher verwende ich >?
Da idP ein Bezeichner sein muss, fügen wir ID hinzu, um das Attribut als Bezeichner zu
deklarieren.
Das Partnerattribut muss sich auf den idP eines anderen Teilnehmers beziehen. Zu
diesem Zweck verwende ich IDREF.
<!DOCTYPE tournament [
]>
<Vorname>Manuel Pérez</Vorname>.
<Alter>23</alter>.
<Land> Spanien</Land>.
1
0
<seriellKopf/>
</participant>.
<Vorname>Manuel Gómez</Vorname>.
<Alter>25</alter>.
<Land>Spanien</Land>.
</participant>.
<Vorname>Ana Puertas</Vorname>.
<Alter>22</alter>.
<Land>E5spain</Land>.
<seriellKopf/>
</participant>.
<Vorname>Paco Fraile</Vorname>.
<Alter>45</alter>.
<Land>Spanien</Land>.
</participant>.
</tournament>.
Ich füge ein Bildschirmfoto des Copy Editors bei, und die Datei wird .dtd sein:
1
1