zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden Wert-Typen #CDATA und #PCDATA

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 20.03.2008, 20:48
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard Wert-Typen #CDATA und #PCDATA

Zitat:
Zitat von selfhtml.org
#PCDATA steht für parsed character data, zu deutsch: vom Seite HTML-Parser analysierte Zeichendaten. Es handelt sich in HTML normalerweise um Text, der innerhalb eines Elements, also zwischen Anfangs- und End-Tag notiert werden kann. Solcher Text kann aus Zeichen bestehen, die in der Seite Zeichenreferenz genannt sind. Benannte Zeichen wie ü sind also ebenso erlaubt wie numerische Notationen von der Art € oder €. Solche Notationen werden erkannt und umgesetzt. PCDATA-Zeichendaten dürfen jedoch selbst nicht aus Tags bestehen. Ein Element, welches nur solche Zeichendaten enthalten darf, darf also keine HTML-Elemente enthalten. Dies gilt zum Beispiel für die Elemente title und textarea.
Zitat:
Zitat von selfhtml.org
#CDATA steht für character data, zu deutsch: Zeichendaten. Es handelt sich um Text, der keine weiteren HTML-Elemente enthalten kann. In HTML ist das typischerweise Text, der bei einer Wertzuweisung an ein Attribut vorkommt. Solcher Text darf bei HTML 4.0 aus allen Zeichen bestehen, die in der Seite Zeichenreferenz genannt sind. Benannte Zeichen wie &uuml; sind also ebenso erlaubt wie numerische Notationen von der Art &#x20AC; oder €. Solche Notationen werden erkannt und umgesetzt. HTML-Auszeichnungen, also die Notation von HTML-Elementen, wird in CDATA-Bereichen dagegen nicht erkannt. Das einzige, wonach gesucht wird und was erkannt wird, ist die Zeichenfolge </. Deshalb müssen Sie das Zeichen < in Wertzuweisungen an Attribute unbedingt wie üblich durch &lt; maskieren. Leerzeichen am Beginn oder Ende eines #CDATA-Textbereichs wird normalerweise abgeschnitten.

#CDATA schränkt zwar in keiner Weise ein, welcher Text einem Attribut als Wert zugewiesen wird. Dennoch sind in vielen Fällen nur bestimmte typische Angaben üblich. So fallen Seite Sprachenkürzel beispielsweise auch unter #CDATA, aber erwünscht ist an der entsprechenden Stelle eine Angabe nach einem bestimmten Schema. Meistens werden solche Schemata durch Seite RFCs geregelt. In dieser Attribut-Referenz wird auf solche RFCs hingewiesen.
Der einzige Unterschied zwischen #CDATA und #PCDATA ist kurz der, dass #CDATA für Werte in Attributen und #PCDATA für Werte als Element-content gelten?

Und dann noch
[a] Darf #PCDATA und folgende andere HTML-Elemente enthalten:
[Inline-Elemente] (außer a)

[abbr] Darf #PCDATA und folgende andere HTML-Elemente enthalten:
[Inline-Elemente]

Bei keinem Element in der Auflistung ist angegeben, ob es block oder inline ist, nur, was es beinhalten darf. Das macht ein inline-Element doch auch noch aus, dass es selbst wieder nur inline-Elemente und #PCDATA enthalten darf!?

inline-Elemente dürfen doch grundsätzlich keine block-Elemente enthalten!?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 20.03.2008, 21:33
Standardkatze
XHTMLforum-Kenner
 
Registriert seit: 06.02.2007
Beiträge: 1.820
gato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nett
Standard

Zitat:
Zitat von nick Beitrag anzeigen
Der einzige Unterschied zwischen #CDATA und #PCDATA ist kurz der, dass #CDATA für Werte in Attributen und #PCDATA für Werte als Element-content gelten?
Der Einfachheit halber: Ja, aber das stimmt nicht wirklich mit der Realität überein (wie so vieles in der HTML4.01-Spezifikation..)
Es gibt auch Elemente, die keine PCDATA enthalten können/dürfen. SELFHTML sagt zwar (wahrscheinlich stehts auch so in den DTDs), dass z. B. textarea und title #PCDATA enthalten dürfen, aber kein vernünftiger Browser machen sollte. Mozilla gibt hier entsprechend auch nur Zeichendaten aus. Ich denke das ist richtig so, aber ich habe jetzt nicht tiefgehend getestet.

Zitat:
Zitat von nick Beitrag anzeigen
Bei keinem Element in der Auflistung ist angegeben, ob es block oder inline ist, nur, was es beinhalten darf.
Ganz oben in der HTML-Elementreferenz findest du zwei Auflistungen, was als Blockelement gilt und was als Inlinelement.

Zitat:
Zitat von nick Beitrag anzeigen
Das macht ein inline-Element doch auch noch aus, dass es selbst wieder nur inline-Elemente und #PCDATA enthalten darf!?
Ersteres ja. Der Unterschied zwischen Block- und Inlinelementen in HTML ist erstmal nur, dass Blockelemente vertikal nach unten und Inlinelemente horizontal in Schreibrichtung angeordnet werden.
Allerdings vergisst HTML4.01 zu definieren, was z.B. Metadaten sind oder eine Tabelle. Daher definiert man dies inzwischen zum Großteil über CSS. Allerdings Gibts kein Blockelement, dass zum Inlinelement wurde, oder andersrum.

Zitat:
Zitat von nick Beitrag anzeigen
inline-Elemente dürfen doch grundsätzlich keine block-Elemente enthalten!?
Richtig.
__________________
Über Internet Explorer 8:
Noch bis 8. April 2014 wird der Internet Explorer 6 mit Sicherheitsupdates versorgt.
Bereits jetzt kann dieser Browser aber vollständig durch den IE8 ersetzt werden. Ältere Betriebssysteme und Browserversionen werden von Microsoft nicht mehr unterstützt.
Auch Programme, die den IE7 benötigen, sind kein Argument gegen IE8, da dieser über entsprechende Kompatibilitätsschichten verfügt.
Ab sofort gilt daher der Internet Explorer 8 als vorausgesetzer Mindeststandard.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 20.03.2008, 21:45
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Joahr, danke. Gleich noch eine Frage. p ist doch eigentlich ein logisches Blockelement, da p ein Blockelement wie div ist, nur hängt der untere Außenabstand standardmäßig nach Bedeutung vom Browser ab und p nur #PCDATA und inline-Elemente enthalten darf?

In selfhtml wird aber nur ein Brocken inline-Elemente wie em aufgelistet. Was würdest du als Oberbegriff für Inline- und Block-Elemente nehmen? Der Element-Typ ist ja eigentlich der Name: p, i, span etc

Element-Art?

Geändert von nick (20.03.2008 um 21:54 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 20.03.2008, 22:15
Standardkatze
XHTMLforum-Kenner
 
Registriert seit: 06.02.2007
Beiträge: 1.820
gato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nett
Standard

Zitat:
Zitat von nick Beitrag anzeigen
p ist doch eigentlich ein logisches Blockelement, da p ein Blockelement wie div ist, nur hängt der untere Außenabstand standardmäßig nach Bedeutung vom Browser ab und p nur #PCDATA und inline-Elemente enthalten darf?
Das p-Element hat die Bedeutung eines Absatzes. Das div-Element hat die bedeutung de gruppierenden Blockelements.

Du kannst zwar ein div-Element wie ein p-Element gestalten, aber die Bedeutung, die für das p-Element definiert ist kann das div-Element niemals erreichen. Diese Bedeutung ist wichtig, wenn ein Dokument verarbeitet wird.

Wie gesagt, ob PCDATA oder nicht, das hat eigentlich keine Bedeutung, wenn es um die Frage geht: Block- oder Inlineelement.

Zitat:
Zitat von nick Beitrag anzeigen
In selfhtml wird aber nur ein Brocken inline-Elemente wie em aufgelistet.
SELFHTML führt alle Inlinelemente auf. Es gibt die Inlineelemente, die eine definierte Bedeutung haben und diejenigen, die keine Bedeutung haben, sondern Formatierungen herbeiführen (und daher missbilligt sind).

Zitat:
Zitat von nick Beitrag anzeigen
Was würdest du als Oberbegriff für Inline- und Block-Elemente nehmen? Der Element-Typ ist ja eigentlich der Name: p, i, span etc
Ich denke Block- und Inlinelemente ist schon die oberste Unterscheidung für HTML.

Wenn man es genau nimmt besteht die Einteilung aber aus mehreren Schichten:
  1. Die Definition der verwendeten Sprache. Hier also HTML. HTML definiert fieldset, welches mit CSS nicht realisiert werden kann.
  2. CSS - diese Gestaltungssprache definiert einige Formate für Elemente, z.B. Block, Inline, aber auch Tabelle oder ruby.
  3. Zuletzt die Grobeinteilung in Block und Inlineelemente, wie man sie in älteren Spezifikationen findet, also HTML 4.01 usw.

Nebenbei: Wenn du Probleme hast mit der Zuordnung von Elementname usw. sieh dir mal Matthias Schäfers Syntaxbestandteile und deren Bezeichnungen an.
Mit Zitat antworten
  #5 (permalink)  
Alt 20.03.2008, 22:43
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Also gibt es Block, Inline und table ist sein eigenes Ding?
Ich hatte mal eine Auflistung der Elementarten. Da waren inline-, Block und Grafik drin, womit img wohl auch sein eigenes ist. Was macht img zu einem nicht-inline-Element, sondrn zu seinem eigenen? Die Grafik wird ja als Buchstabe behandelt und hebt die Zeilenhöhe, je nachdem, ob sie größer ist als die größte Zahl der Zeile.

Und Table ist wohl auch weder Block- noch inline. Datei erzeugt die Tabelle doch auch ihre eigene Reihe im viewport. Das Boxmodell sieht scheinbar halt anders aus in table. Wenn ich der table 100% Breite gebe cellpadding von 10px, scheißt sie keine 20px aus dem viewport. Oder ist cellpadding eher der Abstand von seinen Zellen zur tr und das war's auch schon?
Mit Zitat antworten
  #6 (permalink)  
Alt 20.03.2008, 22:58
Standardkatze
XHTMLforum-Kenner
 
Registriert seit: 06.02.2007
Beiträge: 1.820
gato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nett
Standard

Zitat:
Zitat von nick Beitrag anzeigen
Also gibt es Block, Inline und table ist sein eigenes Ding?
Ich hatte mal eine Auflistung der Elementarten. Da waren inline-, Block und Grafik drin, womit img wohl auch sein eigenes ist. Was macht img zu einem nicht-inline-Element, sondrn zu seinem eigenen? Die Grafik wird ja als Buchstabe behandelt und hebt die Zeilenhöhe, je nachdem, ob sie größer ist als die größte Zahl der Zeile.
Diese Definitionen sind per CSS. Also 2. in der Liste oben. In CSS ist table eine eigene Darstellungsart für ein Element. Bilder sind Inlineelemente, aber spezielle, so genannte ersetze Inlinelemente. Das gilt auch für andere Elemente wie input oder textarea.

Der Inhalt eines img-Elements wird ja nicht dargestellt, das Element hat nichtmal einen Inhalt. Das Element wird stattdessen durch die referenzierte Graphik oder den Alternativtext angezeigt.

Ach ja: Bilder heben die Zeilenhöhe nicht an. Sie werden nur auf der Textzeile positioniert und diese wächst dann an. Die Zeilenhöhe selbst bleibt bestehen.

input-Elemente und Textfelder werden durch Eingabefelder ersetzt. Das alles wird genau in CSS definiert.

Aber wie gesagt, CSS definiert nicht, zumindest nicht komplett, die Modelle der Auszeichnungssprachen. Das HTML-Element fieldset bzw. die Magie dessen legend-Elements ist über CSS nicht möglich bzw. nur mit Holzhackerei.

Zitat:
Zitat von nick Beitrag anzeigen
Und Table ist wohl auch weder Block- noch inline. Dabei erzeugt die Tabelle doch auch ihre eigene Reihe im viewport.
Wie gesagt, in der Grobunterscheidung ist <table> ein Blockelement. Dieses HTML-Tabellenmodell findet man z. B. im Internet Explorer bis Version 7 und den Quirksmodi anderer Browser. Ansonnsten werden Tabellen inzwischen überall mit dem CSS-Modell realisiert. und das kennt meines Wissens 11 Darstellungsarten, die nicht als Block- bzw. Inlineelemente gelten.

Zitat:
Zitat von nick Beitrag anzeigen
Das Boxmodell sieht scheinbar halt anders aus in table. Wenn ich der table 100% Breite gebe cellpadding von 10px, scheißt sie keine 20px aus dem viewport. Oder ist cellpadding eher der Abstand von seinen Zellen zur tr und das war's auch schon?
Nun, du vergisst dabei, dass eine Tabelle aus mindestens 3 Elementen besteht, deren Elementdarstellungsart teilweise erheblich vom regulären Boxmodell abweicht.

Die Tabelle ist in Spalten und Zeilen gegliedert, ein Konzept, dass dem restlichen CSS nahzu unbekannt ist.
Mit Zitat antworten
  #7 (permalink)  
Alt 20.03.2008, 23:18
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Erinnert an die Frage an Radio Eriwan ...
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #8 (permalink)  
Alt 20.03.2008, 23:30
Standardkatze
XHTMLforum-Kenner
 
Registriert seit: 06.02.2007
Beiträge: 1.820
gato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nett
Standard

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
Erinnert an die Frage an Radio Eriwan ...
Bezogen auf die Fragen oder die Antworten?
Mit Zitat antworten
  #9 (permalink)  
Alt 20.03.2008, 23:35
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ehrlich gesagt: alles.

Es liest sich so als seien sich die Autoren der Spezifikationen da auch nicht
100%ig einig. Die Autoren der Browser auch nicht und dann komme ich ...
und stehe davor wie das Tier mit den Hörner vor der leichten Dünung.
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 20.03.2008, 23:49
Standardkatze
XHTMLforum-Kenner
 
Registriert seit: 06.02.2007
Beiträge: 1.820
gato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nett
Standard

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
Es liest sich so als seien sich die Autoren der Spezifikationen da auch nicht
100%ig einig. Die Autoren der Browser auch nicht und dann komme ich ...
und stehe davor wie das Tier mit den Hörner vor der leichten Dünung.
Nun ja, bedenke dass HTML4 über 10 Jahre alt istn und zig Fehler enthält, die bis heute nicht korrigiert wurden, weil man an XML, das goldene Kalb, geglaubt hat. So, vermute ich, z.B. die (P)CTATA-Verwirrung HTML 5 versucht diese Fehler zu korrigieren. XHTML 2.0 versucht das auch, entwickelt aber ein völlig neues Dokumentformat.

Bei HTML4 ist z.B. ein Problem dass man nur definiert hat, was man auch über eine DTD prüfen kann. - Völliger Schwachsinn.

Du solltest dir aber eigentlich keine Sorgen machen, wenn du standardkonform Arbeitest.

Was die Darstellung in modernen Browsern angeht, so wird der Großteil über CSS realisiert. MathMLs <mtable> wird z.B. mit display: inline-block; realisiert (das echte MathML nebenbei, nicht dass für CSS-Holzhacker-MathML).

Und CSS ist sehr ausgereift, zig mal ausgereifter als HTML4 und das trifft eigentlich auf alle modernen Spezifikationen zu.

Das Problem ist halt, HTML verschwindet nicht mehr..
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[javascript] wert in variable speichern ohne referenz auf objekt gordon Javascript & Ajax 4 03.07.2015 23:55
Checkbox mit Wert Jonas* (X)HTML 1 10.05.2010 16:42
Wert aus Variabele mit eckigen klammern auslesen labbixenja Serveradministration und serverseitige Scripte 6 05.10.2009 22:14
php Variable Wert zuweisen online Serveradministration und serverseitige Scripte 14 16.04.2009 00:01
OPTION (Wert) aus SELECT-Liste als PHP Variable übergeben ohne Submit Button..?! flobox Javascript & Ajax 7 18.12.2008 17:15


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:46 Uhr.