4 Syntax and basic data types 4.3 Values 4.3.2 Lengths The format of a length value (denoted by in this specification) is a (with or without a decimal point) immediately followed by a unit identifier (e.g., px, em, etc.). After a zero length, the unit identifier is optional.
From: http://www.w3.org/TR/CSS21/fonts.html 15.3 Font family: the 'font-family' property Style sheet designers are encouraged to offer a generic font family as a last alternative. Generic font family names are keywords and must NOT be quoted. In the example above, the last value is a generic family name. The following generic families are defined: 'serif' (e.g. Times) 'sans-serif' (e.g. Helvetica) 'cursive' (e.g. Zapf-Chancery) 'fantasy' (e.g. Western) 'monospace' (e.g. Courier)
After this fix, it will be valid. ------------------------------------------------------------ /html/themes/phpkaox/style.css, styleMAC.css, styleNN.css line1 table { width: 100%; margin: 5; padding: 5; font-size: small} To: table { width: 100%; margin: 5px; padding: 5px; font-size: small}
line6 ( I mean not ; but : ) body { font-family: Tahoma, taipei; color;#000000; font-size: 12px} To: body { font-family: Tahoma, taipei; color: #000000; font-size: 12px}
After this fix, it will be valid. -------------------------------------------------------- /html/themes/x2t/style.css
/* Only IE that not affect the other Browsers */ * {scrollbar-face-color: #E9E9E9; scrollbar-highlight-color: #ffffff; scrollbar-shadow-color: #E0E0E0; scrollbar-3dlight-color: #000000; scrollbar-arrow-color: #000000; scrollbar-track-color: #ffffff; scrollbar-darkshadow-color: #000000;} hr {height: 3px; border: 3px #D68000 solid; filter: Alpha(Opacity=100,FinishOpacity=10,Style=2); width: 95%;}
Yeah... They are supported only in case of IE... so... If we want to make style.css valid, we have to remove them. (I mean scrollbar-xxxx-xxxx and filter! )
/html/themes/x2t/styleNN.css line 17 hr {height: 1px; #D68000 solid; width: 95%;} To: hr {height: 1px; border: 3px #D68000 solid; width: 95%;}
After this fix, it will be valid. -------------------------------------------------------
An XML declaration is not required in all XML documents; however XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16 and no encoding was determined by a higher-level protocol. Here is an example of an XHTML document. In this example, the XML declaration is included. Quote:
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
As for mambo,xaraya, all pages(maybe--;;) are strictly conforming documents..although they're pages for error message.
but... as for xoops, I think it still lacks consistency. Quote:
A Strictly Conforming XHTML Document is an XML document that requires only the facilities described as mandatory in this specification. Such a document must meet all of the following criteria: 1,It must conform to the constraints expressed in one of the three DTDs found in DTDs and in Appendix B.
2,The root element of the document must be html.
3,The root element of the document must contain an xmlns declaration for the XHTML namespace [XMLNS]. The namespace for XHTML is defined to be http://www.w3.org/1999/xhtml.
4,There must be a DOCTYPE declaration in the document prior to the root element. The public identifier included in the DOCTYPE declaration must reference one of the three DTDs found in DTDs using the respective Formal Public Identifier. The system identifier may be changed to reflect local system conventions.
5, The DTD subset must not be used to override any parameter entities in the DTD.
So.. If we use form classes such as XoopsTableForm(tableform.php), XoopsThemeForm(themeform.php) with XoopsFormHidden(formhidden.php), we can never get the message," "This Page Is Valid XHTML 1.0 Transitional!" from W3 validator.
Umm... I think there are some solutions for this problem..
Following transitional elements were removed from the Strict XHTML: applet, basefont, center, dir, font, iframe, isindex, menu, noframes, s, strike, u. -------------------------------------------------------------------------------- Following attributes were removed from the Strict XHTML: Attribute alink is forbidden on body. Attribute background is forbidden on body. Attribute bgcolor is forbidden on body, table, td, th, tr. Attribute border is forbidden on img, object, it can be used on table. Attribute clear is forbidden on br. Attribute language is forbidden on script. Attribute link is forbidden on body. Attribute name is forbidden on form, img, it can be used on a, button, input, map, meta, object, param, select, textarea. Attribute noshade is forbidden on hr. Attribute nowrap is forbidden on td, th. Attribute start is forbidden on ol. Attribute target is forbidden on a, area, base, form, link. Attribute text is forbidden on body. Attribute type is forbidden on li, ol, ul, it can be used on a, button, input, link, object, param, script, style. Attribute value is forbidden on li, it can be used on button, input, option, param. Attribute vlink is forbidden on body.
mambo : XHTML 1.0 Transitional
xml version="1.0" encoding="iso-8859-1"?>
Official Demonstration Site - Home
xoops : XHTML 1.0 Transitional
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <meta http-equiv="content-language" content="en" /> <meta name="robots" content="index,follow" /> <meta name="keywords" content="XOOPS, news, technology, headlines, xoops, xoop, nuke, myphpnuke, myphp-nuke, phpnuke, SE, geek, geeks, hacker, hackers, linux, software, download, downloads, free, community, mp3, forum, forums, bulletin, board, boards, bbs, php, survey, poll, polls, kernel, comment, comments, portal, odp, open, source, opensource, FreeSoftware, gnu, gpl, license, Unix, *nix, mysql, sql, database, databases, web site, weblog, guru, module, modules, theme, themes, cms, content management" /> <meta name="description" content="XOOPS is an extensible, OO (Object Oriented), easy to use dynamic web content management system written in PHP. XOOPS is the ideal tool for developing small to large dynamic community websites, intra company portals, corporate portals, weblogs and much more." /> <meta name="rating" content="general" /> <meta name="author" content="XOOPS" /> <meta name="copyright" content="Copyright ?2001-2004, the XOOPS.org Project" /> <meta name="generator" content="XOOPS" /> <title>Official XOOPS Website - Powered by You!title> <link href="https://xoops.org/favicon.ico" rel="SHORTCUT ICON" /> <link rel="stylesheet" type="text/css" media="all" href="https://xoops.org/xoops.css" /> <link rel="stylesheet" type="text/css" media="all" href="https://xoops.org/themes/default/style.css" /> <link rel="alternate" type="application/rss+xml" title="RSS" href="https://xoops.org/backend.php" />
---------------------------------------------------- pages which give us "Error:required attribute not specified" ---------------------------------------------------- Quote:
In an attribute declaration, #REQUIRED means that the attribute must always be provided, #IMPLIED that no default value is provided. [Definition: If the declaration is neither #REQUIRED nor #IMPLIED, then the AttValue value contains the declared default value; the #FIXED keyword states that the attribute must always have the default value. If a default value is declared, when an XML processor encounters an omitted attribute, it is to behave as though the attribute were present with the declared default value.
------------------------------------------ pages which gives us "already defined ID error" ------------------------------------------ Quote:
An "id" is a unique identifier. Each time this attribute is used in a document it must have a different value. If you are using this attribute as a hock for style sheets it may be more appropriate to use classes (which group elements) than id (which are used to identify exactly one element).
Gambero wrote: Why isn't wanikoo in XOOPS Core development Team ? ...... And like you said he just need to ask. So, wanikoo: ASK!
Gambero, you are so generous! but...my answer is "NO...more exactly NOT YET" because I don't have enough skill and experience yet. but I will continue to develop myself more and more....for D-day(--;;)
4.2. Element and attribute names must be in lower case XHTML documents must use lower case for all HTML element and attribute names. This difference is necessary because XML is case-sensitive e.g.
and
are different tags.
ex)
->it gives us some error messages element "TD" undefined there is no attribute "colspan" there is no attribute "id" end tag for element "td" which is not open end tag for "TD" omitted etc... Quote:
4.4. Attribute values must always be quoted All attribute values must be quoted, even those which appear to be numeric.
ex)
->error message an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified Quote:
4.5. Attribute Minimization XML does not support attribute minimization. Attribute-value pairs must be written in full. Attribute names such as compact and checked cannot occur in elements without their value being specified.
ex}
->error message "value" is not a member of a group specified for any attribute
-------------------------- pages with id="xxxx[]" ------------------------- Umm... Pages with id="xxxx[]" always gives us some error messages when validation check. --error messages-- character "[" is not allowed in the value of attribute "id" ID "xxxx[]" already defined ------------------
ex)/html/notifications.php
system_notification_list.html line 13
line 21
Line 132, column 57: character "[" is not allowed in the value of attribute "id"
...> Umm... in this case( input ), attribute "id" is not mandatorily requested and we have another identifier, attribute "name". so.. just remove id="del_mod[]" and id="del_not[<{$module.id}>][]" (or if you don't want to remove attribute "id", you can keep it by changing its value like the case,viewpmsg.php mentioned before) ------------------------------ After this modification, we can get this message, "This Page(ex: notifications.php) Is Valid XHTML 1.0 Transitional!" from W3 validator.
4.10. The elements with 'id' and 'name' attributes HTML 4 defined the name attribute for the elements a, applet, form, frame, iframe, img, and map. HTML 4 also introduced the id attribute. Both of these attributes are designed to be used as fragment identifiers.
In XML, fragment identifiers are of type ID, and there can only be a single attribute of type ID per element. Therefore, in XHTML 1.0 the id attribute is defined to be of type ID. In order to ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 documents MUST use the id attribute when defining fragment identifiers on the elements listed above. See the HTML Compatibility Guidelines for information on ensuring such anchors are backward compatible when serving XHTML documents as media type text/html.
Note that in XHTML 1.0, the name attribute of these elements is formally deprecated, and will be removed in a subsequent version of XHTML.
C.8. Fragment Identifiers In XML, URI-references [RFC2396] that end with fragment identifiers of the form "#foo" do not refer to elements with an attribute name="foo"; rather, they refer to elements with an attribute defined to be of type ID, e.g., the id attribute in HTML 4. Many existing HTML clients don't support the use of ID-type attributes in this way, so identical values may be supplied for both of these attributes to ensure maximum forward and backward compatibility (e.g., ...).
Further, since the set of legal values for attributes of type ID is much smaller than for those of type CDATA, the type of the name attribute has been changed to NMTOKEN. This attribute is constrained such that it can only have the same values as type ID, or as the Name production in XML 1.0 Section 2.3, production 5. Unfortunately, this constraint cannot be expressed in the XHTML 1.0 DTDs. Because of this change, care must be taken when converting existing HTML documents. The values of these attributes must be unique within the document, valid, and any references to these fragment identifiers (both internal and external) must be updated should the values be changed during conversion.
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. See Section 6.2 of [HTML4] for more information.
Finally, note that XHTML 1.0 has deprecated the name attribute of the a, applet, form, frame, iframe, img, and map elements, and it will be removed from XHTML in subsequent versions.