Fournier Daniel
2004-05-05 14:30:10 UTC
The use of XML for Xaraya templates is a nice idea: during the
development stage, one can validate them with ordinary XML tools.
Unfortunatly, Xaraya_Classic theme default.xt template is not XML
conformant.
For instance, it uses an XML entity (&xar-baseurl;) to reference the
site base URL. However this entity is not defined within any ENTITY
declaration. How is this entity defined? Is it just a pseudo entity
replaced in the PHP processing of the template?
Another XML conformance violation is the DOCTYPE declaration for HTML,
which should come before document root element.
Why not use a true DOCTYPE declaration for the template and modify it to
have the right HTML DOCTYPE including the baseurl entity declaration
when compiling the template.
The template prolog could be:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xar:blocklayout
[
<!ENTITY xar-baseurl "$xar-baseurl">
]>
<?xar type="page" ?>
....
after compilation:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[
<!ENTITY xar-baseurl "http://www.myxarsite.com/">
]>
....
Another problem is the multiplication of elements with identical id
attributes. For instance: <td id="leftmenus">. ID attributes have to be
unique in the document. Probably a class attribute instead of an id (is
this id used somewhere in the document processing?) would suffice.
Daniel Fournier
development stage, one can validate them with ordinary XML tools.
Unfortunatly, Xaraya_Classic theme default.xt template is not XML
conformant.
For instance, it uses an XML entity (&xar-baseurl;) to reference the
site base URL. However this entity is not defined within any ENTITY
declaration. How is this entity defined? Is it just a pseudo entity
replaced in the PHP processing of the template?
Another XML conformance violation is the DOCTYPE declaration for HTML,
which should come before document root element.
Why not use a true DOCTYPE declaration for the template and modify it to
have the right HTML DOCTYPE including the baseurl entity declaration
when compiling the template.
The template prolog could be:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xar:blocklayout
[
<!ENTITY xar-baseurl "$xar-baseurl">
]>
<?xar type="page" ?>
....
after compilation:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[
<!ENTITY xar-baseurl "http://www.myxarsite.com/">
]>
....
Another problem is the multiplication of elements with identical id
attributes. For instance: <td id="leftmenus">. ID attributes have to be
unique in the document. Probably a class attribute instead of an id (is
this id used somewhere in the document processing?) would suffice.
Daniel Fournier