|
|
Hallo zusammen,
ich möchte Daten aus einem PHP Skript an JavaScript übergeben, indem ich das id-Attribut "missbrauche" und dort einen Base64 codierten String angebe. Da im id-Attribut nur Buchstaben, Zahlen und '-', '_' und ':' erlaubt sind (http://www.w3.org/TR/html4/types.html#h-6.2), benutze ich diese statt den normalerweise bei Base64 verwendeten Sonderzeichen.
Validome behauptet jetzt, meine id-Attribute wären ungültig. Darf ich keine Doppelpunkte benutzen (obwohl das ja so unter o.g. Url steht)?
Vielen Dank für jede Hilfe!
|
|
| 31.08.2006 22:16:33 |
|
|
|
Doch, darfst du. Zumindest solange du als erstes Zeichen einen Buchstaben wählst. Eventuell ist das aber auch ein Bug, näheres kann man ohne Code schwerlich sagen.
Die Idee an sich klingt aber völlig abgedreht, warum lässt du nicht von PHP sowas wie <script type="text/javascript>variablenname="deine-daten";</script> ausgeben?
|
|
| 01.09.2006 00:26:08 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo, in HTML ist der Doppelpunkt im id-Attribut erlaubt (nicht am Anfang), in XHTML dagegen nicht.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 01.09.2006 01:15:10 |
|
|
|
Sicher? Laut http://www.w3.org/TR/xhtml1/#C_8
| Note that the collection of legal values in XML 1.0 Section 2.3, production 5 is much larger than that permitted to be used in the ID and NAME types defined in HTML 4. When defining fragment identifiers to be backward-compatible, only strings matching the pattern [A-Za-z][A-Za-z0-9:_.-]* should be used. | , http://www.w3.org/TR/REC-xml/#id
| Values of type ID MUST match the Name production. A name MUST NOT appear more than once in an XML document as a value of this type; i.e., ID values MUST uniquely identify the elements which bear them. | und http://www.w3.org/TR/REC-xml/#NT-Name
| Name ::= (Letter | '_' | ':') (NameChar)* | sollte ein Doppelpunkt im id-Attributwert auch XHTML zulässig sein. Es sind demnach sogar andersherum Werte in XHTML zulässig, die in HTML nicht zulässig waren. Gerade deshalb wird ja in den Kompatiblitätsrichtlinien darauf hingewiesen.
|
|
| 01.09.2006 17:29:56 |
|
|
|
Nachtrag:
Interessant, laut http://www.w3.org/TR/xmlschema-2/#ID ist der Doppelpunkt tatsächlich ungültig. Offenbar ist das ein Wiederspruch? Oder habe ich irgendwas übersehen?
|
|
| 01.09.2006 17:47:30 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo, ich habe auch lange rumgestöbert und bin über diesen Wiederspruch gestolpert. Ich habe mich aber für die Version aus der Schemaspec entschieden, da der ":" bei XML für Namensräume reserviert ist (wenn auch nicht in Attributwerten). So wie es aussieht entspricht der Datentyp von id in ein XML-Dokument nicht dem Datentyp 'ID' im Schema. Im Schema entspricht der Datentyp 'ID' (http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#ID) dem Datentyp 'NCName', und dieser ist 'QName without the prefix and colon' also ohne ":". Nur, was haben die beiden id's überhaupt miteinander zu tun ? - nichts. Es ist doch eher so das für die Schemadeklaration des id-Attributes ein falscher Datentyp verwendet wird - id ist jedenfalls falsch, der Datentyp 'Name' (http://www.w3.org/TR/2001/REC-xmlschema ... 0502/#Name) währe da wohl passender, oder sehe ich das falsch ? Werde wohl mal wieder das W3C-Schema fixen müssen...
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 01.09.2006 20:33:42 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hi, ich habs gefunden: http://www.w3.org/TR/xml-id/#processing
| The normalized value of the attribute is an NCName according to the Namespaces in XML Recommendation which has the same version as the document in which this attribute occurs (NCName for XML 1.0, or NCName for XML 1.1). |
Dort ist ein Link auf http://www.w3.org/TR/REC-xml-names/#NT-NCName wo wiederum "NCNameChar ::= NameChar - ':'" steht. Also NameChar ohne ":", demnach dürfen id's in XML kein ":" enthalten, das Schema ist korrekt und der Validator arbeitet auch richtig ;-)
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 02.09.2006 00:03:25 |
|
|
|
Damit ist der Widersprich nicht gelöst. Das von dir zitierte Dokument bezieht sich auf das xml:id-Attribut, das ist doch was anderes als das id-Attribut!? xml:lang und lang sind doch auch nicht das Gleiche ...
Sowohl die XHTML- als auch die XML-Spezifikation ist hier imo sehr deutlich, lediglich das Schema weicht davon ab. Ich vermute daher auch, dass das Schema fehlerhaft ist. Offenbar ist das ja nicht das erste mal?
|
|
| 02.09.2006 20:55:24 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo, ich verstehe den Unterschied zwischen id und xml:id folgendermaßen: id ist erst einmal irgendein Attribut, das es sich z. B. dabei um den Datentyp 'ID' handelt, bestimmt erst das Schema. Das Attribut id könnte aber auch eine ganz andere Bedeutung haben... xml:id hat dagegen eine feste Funktion (auch ohne Schema), nämlich unsere geliebte ID ohne ":". Genau so verhält es sich mit xml:lang und lang. Jetzt stellt sich für mich die Frage warum das W3C in XHTML nicht das xml:id Attribut eingeführt hat, sondern beim id-Attribut geblieben ist?! Die einzige logische Erklärung ist, das eben doch der Doppelpunkt erlaubt ist; Dann ist aber deren Schema falsch. Also doch wieder das Schema fixen...
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 03.09.2006 02:26:56 |
|
|
|
Volle Zustimmung!
| Jetzt stellt sich für mich die Frage warum das W3C in XHTML nicht das xml:id Attribut eingeführt hat, sondern beim id-Attribut geblieben ist?! |
Sehr einfach: Sonst wäre die Kompatiblität zu bestehenden HTML-UAs ja nicht mehr gegeben.
|
|
| 04.09.2006 00:36:15 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
| Sehr einfach: Sonst wäre die Kompatiblität zu bestehenden HTML-UAs ja nicht mehr gegeben. |
Schon klar, aber man hätte doch für "echte" XHTML-Dokumente xml:ID einführen können (hat man bei xml:lang auch gemacht). Da dies nicht geschehen ist, ist die einzige logische Erklärung der benötigte ":" im id-Attribut. Es währe sowas Problemlos möglich gewesen: <p id="myID" xml:id="myID" lang="en" xml:lang"en"> aber nicht sowas: <p id="my:ID" xml:id="my:ID" lang="en" xml:lang"en"> Andererseits währe die Einführung von xml:id doch problemlos möglich gewesen. Neben den vielen Besonderheiten die zwecks Rückwärtskompatibilität zu HTML beschlossen wurden, währe es doch ein Einfaches gewesen zu sagen "keine : in id-Attributen verwenden". Wenn jemand seine HTML in ein XHTML-Dokumenten umschreiben möchte, währe es halt ein Punkt mehr gewesen, den er zu beachten hätte.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 04.09.2006 02:33:43 |
|
|
|
Das hast du natürlich recht, es wäre aber nicht mal eine Einschränkung zur Kompatiblität mehr gewesen, diese existiert ja jetzt auch (wenn auch andersrum).
Angesichts der häufigen Nutzung von id-Attributen für JavaScript hätte man dann aber auch dort einiges doppelt ausführen müssen. Ein NS-Equivalent für getElementById() gibt es desweiteren auch gar nicht, oder? Auch die Bindung an CSS-Selektoren hätte erweitert werden müssen.
Wie auch immer, in Spezifikationen muss man eh immer Kompromisse eingehen und trotz großer Sorgfalt wird man Unstimmigkeiten oder eher ungünstige Vorgaben nicht immer ausschließen können.
|
|
| 04.09.2006 17:19:55 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo,
| Ein NS-Equivalent für getElementById() gibt es desweiteren auch gar nicht, oder? |
Doch, gibt es -> http://www.php.net/manual/de/function.d ... namens.php
| Wie auch immer, in Spezifikationen muss man eh immer Kompromisse eingehen und trotz großer Sorgfalt wird man Unstimmigkeiten oder eher ungünstige Vorgaben nicht immer ausschließen können. |
Richtig, doch währe es doch wohl das Wenigste, Fehler und Unstimmigkeiten zu beseitigen wenn man drauf hingewiesen wird. Dagegen wehrt sich das W3C aber Erfolgreich seit 8 Jahren (lieber neue Specs mit neuen Fehlern produzieren). Das Schema habe ich übrigens angepasst.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 21.09.2006 16:05:51 |
|
Wechsel zu
Die letzten Beiträge aus diesen Forum
|
|