| bei Elementen (nicht ihren Attributen)
Klaus Reuter
- xml
Hi.
<!ELEMENT (Auftraggeber|Empfaenger) (Name?,Bank,KtoNr)>
Bedeutet der senkrechte Strich in diesem Fall auch entweder das Element Auftraggeber oder das Element Empfaenger?
MfG
Klaus
Hi Klaus!
<!ELEMENT (Auftraggeber|Empfaenger) (Name?,Bank,KtoNr)>
Bedeutet der senkrechte Strich in diesem Fall auch entweder das Element Auftraggeber oder das Element Empfaenger?
Ja! Wenn du "auch" z. B. im Sinne von "wie bei EBNF" meinst.
MfG H☼psel
Hallo Klaus,
<!ELEMENT (Auftraggeber|Empfaenger) (Name?,Bank,KtoNr)>
Bedeutet der senkrechte Strich in diesem Fall auch entweder das Element Auftraggeber oder das Element Empfaenger?
Ja, allerdings ist diese Element-Deklaration fehlerhaft, weil ein Klammerausdruck für das jweilige Inhaltsmodell steht und zunächst der Elementname erforderlich ist. Das könnte so aussehen:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Ueberweisungen [
<!ELEMENT Ueberweisungen (Ueberweisung+)>
<!ELEMENT Ueberweisung (Auftraggeber | Empfaenger)>
<!ELEMENT Auftraggeber (Name?, Bank, KtoNr)>
<!ELEMENT Empfaenger (Name?, Bank, KtoNr)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Bank (#PCDATA)>
<!ELEMENT KtoNr (#PCDATA)>
]>
<Ueberweisungen>
<Ueberweisung>
<Auftraggeber>
<Name>...</Name>
<Bank>...</Bank>
<KtoNr>...</KtoNr>
</Auftraggeber>
</Ueberweisung>
</Ueberweisungen>
Wobei es praktisch sinnvoller wäre, sowohl Auftraggeber als auch Empfaenger zuzulassen, also in der Form:
<!ELEMENT Ueberweisung (Auftraggeber, Empfaenger)>
Wenn es darum geht, die Deklaration für "Name?,Bank,KtoNr" nur 1x zu notieren, dann wäre dieses Vorgehen mit Parameter-Entity geeignet (allerdings nur bei externer DTD-Verwendung):
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Ueberweisungen SYSTEM "ueberweisung.dtd">
<Ueberweisungen>
<Ueberweisung>
<Auftraggeber>
<Name>...</Name>
<Bank>...</Bank>
<KtoNr>...</KtoNr>
</Auftraggeber>
</Ueberweisung>
</Ueberweisungen>
mit ueberweisung.dtd:
<!ENTITY % nbk "Name?, Bank, KtoNr">
<!ELEMENT Ueberweisungen (Ueberweisung+)>
<!ELEMENT Ueberweisung (Auftraggeber | Empfaenger)>
<!ELEMENT Auftraggeber (%nbk;)>
<!ELEMENT Empfaenger (%nbk;)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Bank (#PCDATA)>
<!ELEMENT KtoNr (#PCDATA)>
Grüße,
Thomas