• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

etwas XML

Doty

New member
Hallo!!

Ich hab wieder mal eine schwierige Hausübung bekommen! Ich muss in eine XML-Datei.
Code:
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE LEHRVERBANDSGRUPPEN SYSTEM "lehrverbandsgruppen.dtd">
<LEHRVERBANDSGRUPPEN>
	<LEHRVERBAND KZ="257">
		<NAME>BIF - Informatik (Bakk.)</NAME>
    	<STG>BIF</STG>
    	<STG_KZ>257</STG_KZ>
	</LEHRVERBAND>
	<LEHRVERBAND KZ="257">
   	<NAME>BIF-2</NAME>
		<STG>BIF</STG>
		<STG_KZ>257</STG_KZ>
  	<SEM>2</SEM>
  </LEHRVERBAND>
	</RDF:Description>
	<LEHRVERBAND KZ="257">
	 	<NAME>BIF-2A</NAME>
		<STG:stg>BIF</STG>
		<STG_KZ>257</STG_KZ>
	 	<SEM>2</SEM>
	 	<VERBAND>A</VERBAND>
	</LEHRVERBAND>
	<LEHRVERBAND KZ="257">
	 	<NAME>BIF-2A</NAME>
		<STG:stg>BIF</STG>
		<STG_KZ>257</STG_KZ>
	 	<SEM>2</SEM>
	 	<VERBAND>A</VERBAND>
	 	<GRUPPE>2</GRUPPE>
	</LEHRVERBAND>
</LEHRVERBANDSGRUPPEN>
eine DTD Datei einbinden, damit sie richtig angezeigt wird. Bisher habe ich:
Code:
<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT LEHRVERBANDSGRUPPEN (#PCDATA)>
<!ELEMENT LEHRVERBAND (#PCDATA)>
<!ELEMENT LEHRVERBAND ((NAME, STG, STG_KZ, SEM, VERBAND, GRUPPE))>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT STG ANY>
<!ATTLIST STG
    stg CDATA 	"BIF"
>

<!ELEMENT STG_KZ (#PCDATA)>
<!ELEMENT SEM (#PCDATA)>
<!ELEMENT VERBAND (#PCDATA)>
<!ELEMENT GRUPPE (#PCDATA)>
<!ELEMENT RDF ANY>
<!ATTLIST RDF
    Description CDATA     #IMPLIED
>

Nur wird es immer noch nicht richtig angezeigt! Kann mir jemand weiterhelfen?

LG Doty
 
was meint du mit richtig anzeigen?[

Na dass da immer noch Fehler drinn sind!

Außerdem ist mir aufgefallen, dass ich beim Code etwas falsch aufgeschrieben habe.
</LEHRVERBAND> (Dieser Tagteil gehört eigentlich weg, den hab nur ich dazu geschrieben, als Hoffnung, dass es dann Funktionier!! Hat aber nicht geklappt)
</RDF:Description>
 
Hy!

Also die eigentliche aufgabe ist eigentlich das:
Entwickeln Sie das File lehrverband.dtd und binden Sie es in
lehrverband.xml ein.
und das ist die xml Datei:
Code:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE LEHRVERBANDSGRUPPEN SYSTEM "lehrverbandsgruppen.dtd">
<LEHRVERBANDSGRUPPEN>
	<LEHRVERBAND KZ="257">
		<NAME>BIF - Informatik (Bakk.)</NAME>
		<STG>BIF</STG>
		<STG_KZ>257</STG_KZ>
	</LEHRVERBAND>
	<LEHRVERBAND KZ="257">
   		<NAME>BIF-2</NAME>
		<STG>BIF</STG>
		<STG_KZ>257</STG_KZ>
  		<SEM>2</SEM>
	</RDF:Description>
	<LEHRVERBAND KZ="257">
	 	<NAME>BIF-2A</NAME>
		<STG:stg>BIF</STG>
		<STG_KZ>257</STG_KZ>
	 	<SEM>2</SEM>
	 	<VERBAND>A</VERBAND>
	</LEHRVERBAND>
	<LEHRVERBAND KZ="257">
	 	<NAME>BIF-2A</NAME>
		<STG:stg>BIF</STG>
		<STG_KZ>257</STG_KZ>
	 	<SEM>2</SEM>
	 	<VERBAND>A</VERBAND>
	 	<GRUPPE>2</GRUPPE>
	</LEHRVERBAND>
</LEHRVERBANDSGRUPPEN>

Lg Doty
 
Hy!
Tja und das ist mein neuer Versuch von einer DTD Datei:
Code:
<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT LEHRVERBAND ((NAME, STG, STG_KZ, SEM, VERBAND, GRUPPE))>
<!ELEMENT NAME (String)>
<!ELEMENT STG (A-Z+)>
<!ELEMENT STG_KZ (#PCDATA)>
<!ATTLIST KZ
	         NUMMER CDATA #FIXED "1|2|3|4"  
          > 

<!ELEMENT SEM (a?|b?|c?|d?|e?|f?|g?|h?|i?)>
<!ELEMENT VERBAND (A-Z+)>
<!ELEMENT GRUPPE (#PCDATA)>

Das sollte es eigentlich darstellen: Mich haben die ganzen Regular Expressions schon immer verwirrt.
Attribut KZ: Integer größer 0, maximal 4 Stellen
· Element NAME: Zeichenkette (max. 256 Zeichen)
· Element STG: Großbuchstaben (A-Z max. 3 Zeichen)
· Element STG_KZ: wie Attribut KZ
· Element SEM: Integer 0-9
· Element VERBAND: A-Z (1 Zeichen)
· Element GRUPPE: Integer größer 0, max. 99

Wie soll ich das mit dem max. hinkriegen, wenn immer wenn ich Zahlen eingebe ein Fehler angezeigt wird

LG Doty
 
Zuletzt bearbeitet:
in deiner xml-datei steht immer noch </RDF:Description>
dann fehlt jetzt in der dtd die definition von LEHRVERBANDSGRUPPEN
dann sieh mal nach, ob die Tags VERBAND und GRUPPE unter LEHRVERBAND immer vorkommen.
<!ELEMENT NAME (String)> du hast aber schon eine docu für dtd? such dort mal nach string
<!ATTLIST KZ NUMMER CDATA #FIXED "1|2|3|4"> nochmal hast du eine docu? du beschreibst hier das attribute NUMMER des elementes KZ und selbst dann ist der rest hafer.
<!ELEMENT SEM (a?|b?|c?|d?|e?|f?|g?|h?|i?)> sem hat keine unterelemente a,b,...
...
sind das
Attribut KZ: Integer größer 0, maximal 4 Stellen
· Element NAME: Zeichenkette (max. 256 Zeichen)
· Element STG: Großbuchstaben (A-Z max. 3 Zeichen)
· Element STG_KZ: wie Attribut KZ
· Element SEM: Integer 0-9
· Element VERBAND: A-Z (1 Zeichen)
· Element GRUPPE: Integer größer 0, max. 99
Vorgaben? wie soll das gehen mit einer DTD?

Wie soll ich das mit dem max. hinkriegen, wenn immer wenn ich Zahlen eingebe ein Fehler angezeigt wird
wir reden hier schon über DTD?
 
Hy!!

<!ATTLIST KZ NUMMER CDATA #FIXED "1|2|3|4"> nochmal hast du eine docu? du beschreibst hier das attribute NUMMER des elementes KZ und selbst dann ist der rest hafer.
Ja ich hab eine docu, wenn man die Folien der Vorlesung und ein paar I-net Seiten aus docu bezeichnen kann. Ich hab nur versucht zu machen, was vorgegeben war... einwenig raten, ausprobiern und mal sehen was herraus kommt

<!ELEMENT SEM (a?|b?|c?|d?|e?|f?|g?|h?|i?)> sem hat keine unterelemente a,b,...
Ich weiß, aber ich weiß nicht, wie ich das mit den Zahlen sonst beschreiben soll, weil immer wenn ich zahlen reinschreibe, wird ein Fehler angezeigt...

Also ich bin mit meinen Latein am Ende... Schön langsam gehen mir die Ideen aus...
Vorgaben? wie soll das gehen mit einer DTD?
Ja sind es...

Und ja eigentlich sollte es schon für DTD sein ... und auch fürs XSchema, dass ich auch noch machen muss... und das mir jetzt schon schwieriger vorkommt als das DTD!!

Lg Doty
 
Zuletzt bearbeitet:
einwenig raten, ausprobiern und mal sehen was herraus kommt
naja, nicht gerade ein effektives vorgehen


Ich weiß, aber ich weiß nicht, wie ich das mit den Zahlen sonst beschreiben soll, weil immer wenn ich zahlen reinschreibe, wird ein Fehler angezeigt...

das geht mit DTD nicht

Und ja eigentlich sollte es schon für DTD sein ... und auch fürs XSchema, dass ich auch noch machen muss... und das mir jetzt schon schwieriger vorkommt als das DTD!!

damit kann man die vorgaben aber realisieren.
 
Hy!!

Zuerst mal Danke!! Ich hab die DTD jetzt fertig!
Ich hab in XSchema die gleichen Probleme die ich in DTD mit den Zahlen hatte nur diesmal mit den Buchstaben. Ich habs mit gewöhnlichen Regular Expressions versucht,aber das klappt iwie nicht.

Na ja das habe ich bisher:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="LEHRVERBANDSGRUPPE" type="xs:string"/>
	<xs:element name="NAME" type="xs:string" minOccurs="0"
		 maxOccurs="256"/>
	<xs:element name="STG" type="xs:short" minOccurs="0"
		 maxOccurs="3"/>
	<xs:element name="STG_KZ" type="xs:string"/>
	<xs:element name="SEM" type="xs:integer" minOccurs="0"
		 maxOccurs="9"/>
	<xs:element name="VERBAND" type="xs:charakter"/>
	<xs:element name="GRUPPE" type="xs:integer" minOccurs="1"
		 maxOccurs="99"/>
	<xs:element name="LEHRVERBAND">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NAME"/>
				<xs:element ref="STG"/>
				<xs:element ref="STG_KZ"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xsd:complexType name="LEHRVERBAND">
   		<xsd:attribute name="KZ">
      		<xsd:simpleType>
         		<xsd:restriction base="xsd:integer">
            		<xsd:maxInclusive value="4">
            		<xsd:minInclusive value="0">
         		</xsd:restriction>
      		</xsd:simpleType>
   		</xsd:attribute>
</xs:schema>

Lg Doty
 
<xs:element name="LEHRVERBANDSGRUPPE" type="xs:string"/>
LEHRVERBANDSGRUPPE enthält einen String?
du hast 2 mal den Tag LEHRVERBAND beschrieben.
das hier:
Code:
<xsd:attribute name="KZ">
  <xsd:simpleType>
    <xsd:restriction base="xsd:integer">
      <xsd:maxInclusive value="4">
      <xsd:minInclusive value="0">
    </xsd:restriction>
  </xsd:simpleType>
</xsd:attribute>
bedeutet nicht
Integer größer 0, maximal 4 Stellen
<xs:element name="NAME" type="xs:string" minOccurs="0" maxOccurs="256"/> bedeutet, daß der TAG name 0 - 256 mal stehen darf nur unter welchem element? also 2 Fehler, der bezug zum parent und minOccurs/maxOccurs bedeutet was anderes als du denkst. es gibt aber z.B. maxLength.
<xs:element name="STG" type="xs:short" minOccurs="0" maxOccurs="3"/> was hat das mit "Element STG: Großbuchstaben (A-Z max. 3 Zeichen)" zu tun?
versuch das mal so in der art:
Code:
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z]{3}"/>
  </xs:restriction>
</xs:simpleType>
usw.
bring hier erst mal ordnung bzw. eine Struktur rein. also etwas in der form:
Code:
<xs:element name="ROOTTAG">
 <xs:complexType>
  <xs:sequence>
   <xs:element name="TAG1_EBENE_1" type="xs:string"/>
   <xs:element name="TAG2_EBENE_1">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="TAG1_EBENE_2" type="xs:string."/>
      ...
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   ...
  </xs:sequence>
  <xs:attribute name="ATTRIBUTE" type=xs:string"." use="required"/>
 </xs:complexType>
</xs:element>
 
Zuletzt bearbeitet:
Zurück
Oben