DTD-XML

jenya

Grünschnabel
Hallo Zusammen,

ich habe eine Frage und zwar gibt es vordefinierte DTD-Dateien?
Also meine Aufgabe ist es herauszufinden, ob ich ein <description>-Tag in eine XML-Datei einfügen werden kann, so das die XML-Datei valide bleibt. Aber valide bleibt die XMl-Datei nur, wenn es in der DTD-Datei definiert ist. Muss ich jetzt in der DTD-Datei, überall wo ich das <description>-Tag haben möchte, definieren oder gibt es schon so eine Definition?


Vielen dank schon mal.. :D
 
Mit welchem XML-Format arbeitest du denn? Es gibt ja keine universelle DTD, sondern es gibt DTDs für bestimmte XML-Formate, wie z.B. XHTML. Selbst für XHTML 1.0 gibt es dann schon drei Varianten. Und in keiner gibt es ein Element namens "description". So du also wirklich XHTML um ein "description"-Element erweitern willst, musst du in der Tat die DTDs editieren, aber sinnvoll ist da nur bedingt, denn das Format ist ja vom W3C definiert, um Interoperabilität zu erreichen, nicht um es beliebig zu erweitern.
 
Martin, danke für deine Antwort.

Ich hab meine Ausschnitte aus der XML- und DTD -Datei angehängt, damit du eine kleine Vorstellung von dem hast, was ich machen muss.. :)


ausschnitt der XML-Datei:


Code:
<?xml version="1.0" encoding="ISO-8859-1" ?> 
  <!DOCTYPE eqm-statistics-config (View Source for full doctype...)> 
- <eqm-statistics-config>
- <!--  
		- fix-condition is a collection of sql conditions to supply specific messages
		- fix-condition(s) are handled using condition_key
		- avaliable condition_key(s) are defined in eqm-statistics-config.dtd
	
  --> 
- <fix-conditions>
- <!--  		condition AUTOMATIC_MODE 				
  --> 
- <condition>
  <condition_key value="AUTOMATIC_MODE" /> 
  <name>Automatic mode</name> 
  <string_id>ctl_proc_mode_automatic</string_id> 
- <sql-conditions>
- <sql-condition>
  <type value="IN" /> 
  <field value="class" /> 
- <valuesIncluded>
  <value>10</value> 
  </valuesIncluded>
  </sql-condition>
- <sql-condition>
  <type value="BETWEEN" /> 
  <field value="priority" /> 
- <valuesIncluded>
  <value>12</value> 
  <value>12</value> 
  </valuesIncluded>
  </sql-condition>
  </sql-conditions>
  </condition>




und die dazugehörige DTD-Datei:



Code:
<?xml version="1.0" encoding="ISO-8859-1"?> 

<!-- 
describe eqm-statistics-config document type 
it contains conditions and charts 
-->
<!ELEMENT eqm-statistics-config (fix-conditions, charts, global-options)>

<!-- describe all posiible global options -->
<!ELEMENT global-options (AVAILABILITY_TECH_EXTENDED)>
<!ELEMENT AVAILABILITY_TECH_EXTENDED EMPTY>
<!ATTLIST AVAILABILITY_TECH_EXTENDED
	value (YES | NO) #REQUIRED
>

<!-- describe fix-conditions -->
<!ELEMENT fix-conditions (condition)+>
<!ELEMENT condition (condition_key, name, string_id?, sql-conditions)>
<!ELEMENT condition_key EMPTY >
<!ATTLIST condition_key
   value      (	AUTOMATIC_MODE | MAINTENANCE_MODE | MANUAL_MODE | CENTRAL_START 
   							| LINE_STOP | E_STOP | QUALITY_STOP 
   							| EQUIPMENT_FAULT | ORGANISATIONAL_FAULT 
   							| TECHNICAL_DOWNTIME | ORGANISATIONAL_DOWNTIME
   							
   							
   							| FULL_STOP | SHORT_STOP 
   							
   							| ANDON_LINE_PULL | ANDON_LINE_STOP_AFTER_PULL | ANDON_LINE_DIRECT_STOP 
								| ANDON_LINE_SUMMARY_PULLS | ANDON_LINE_SUMMARY_STOPS
								
								| POKA_YOKE_STOP
   							 
   							) #REQUIRED
>
<!ELEMENT name	(#PCDATA)>
<!ELEMENT string_id	(#PCDATA)>
<!ELEMENT sql-conditions (sql-condition)+>
<!ELEMENT sql-condition (type, field, valuesIncluded, valuesExcluded?)>
<!ELEMENT type EMPTY>
<!ATTLIST type
   value      (IN | BETWEEN | LIKE) #REQUIRED
>
<!ELEMENT field EMPTY>
<!ATTLIST field
   value      (class | priority ) #REQUIRED
>
<!ELEMENT valuesIncluded (value)+>
<!ELEMENT valuesExcluded (value)+>
<!ELEMENT value  (#PCDATA)>

<!-- describe charts -->
<!ELEMENT charts (chart)+>
<!ELEMENT chart (chart_key, title, string_id?, bars)>
<!ELEMENT chart_key EMPTY >
<!ATTLIST chart_key
   value  ( CHART_PROCESS_TIMES_1 | CHART_PROCESS_TIMES_2 | CHART_PROCESS_TIMES_3) #REQUIRED
>
<!ELEMENT title (#PCDATA)>


Ich muss jetzt versuchen in die XML-Datei iwo ein <desxription>-Tag einzufügen. Meine Frage: muss ich das <description>-Tag genauso editieren wie die anderen Tags oder gibt es dafür schon eine Vordefinition (Vorgabe)? Wenn ja wie sieht die aus?

Ich hoffe es ist jetzt ein bisschen verständliche... :)
 
Hi.

Wenn du ein neues Element einführst, mußt du das genauso in der DTD definieren wie die anderen Elemente auch.

XML ist ein "freies" Format, es gibt keine vordefinierten / vorgeschriebenen Elemente für Dokumente.

Gruß
 
Zurück