XP Tutorial 9 Working with XHTML Creating a Well-Formed Valid Document Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 XP Objectives • • • • • • Introducing XHTML Creating a Well-Formed Document Creating a Valid Document Creating an XHTML Document Testing an XHTML Document Using Style Sheets and XHTML Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 2 XP Introducing XHTML • SGML (Standard Generalized Markup Language) – can be used with almost any type of document stored in almost any format – Introduced in the 1980s – Metalanguage– used to created other languages • HTML – standards get confusing among browsers – can be applied inconsistently Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 3 XP Introducing XHTML • XML (Extensible Markup Language) – used to design markup languages • XML documents must be evaluated with an XML parser • An XML document with correct syntax is a wellformed document • A well-formed document with correct content and structure is a valid document • DTD specifies correct content and structure Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 4 XP Introducing XHTML • XHTML is a reformulation of HTML, written in XML Versions of XHTML Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 5 XP DTDs associated with XHTML 1.0 - transitional: supports many of the presentational features of HTML, including the deprecated elements and attributes Best used for older documents that contain deprecated features Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 6 XP DTDs associated with XHTML 1.0 - frameset: used for documents containing frames, and also supports deprecated elements and attributes Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 7 XP DTDs associated with XHTML 1.0 - strict: does not allow any presentational features or deprecated HTML elements and attributes. Does not support frames or inline frames. It is best used for documents that need to strictly conform to the latest standards. Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 8 XP Creating a Well-Formed Document Rules for well-formed XHTML documents Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 9 XP Creating a Well-Formed Document • XHTML documents must also include a single root element that contains all other elements – For XHTML, that root element is the html element • Attribute minimization is when some attributes lack attribute values – XHTML doesn’t allow attribute minimization Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 10 Attribute minimization in HTMLXP and XHTML Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 11 XP Creating a Valid Document • The DTD used depends on the content of the document and the needs of your users • To support old browsers, use the transitional DTD • To support old browsers in a framed Web site, use the frameset DTD • To support more current browsers and want to weed out any use of deprecated features, use the strict DTD Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 12 XP Creating a Valid Document • Elements not allowed under the strict DTD: – – – – – – Tutorial 9 applet basefont center dir font iframe - isindex - menu -s - strike -u New Perspectives on Creating Web Pages with HTML, XHTML, and XML 13 XP Creating a Valid Document • Some attributes are restricted, while others are required in XHTML Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 14 XP Attributes prohibited in the strict DTD Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 15 XP Required XHTML attributes Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 16 XP Creating an XHTML Document • The first line of an XTHML document should contain a declaration indicating that the document adheres to the rules and syntax of XML • XML (and thus XHTML) documents are based on a character set – A character set is a set of abstract symbols matched to code numbers Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 17 XP Character Sets • Universal Character Set (UCS) • Unicode • Character encoding is the process in which bytes are translated back into characters (when a document is sent across the Internet) Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 18 XP Adding an xml Declaration • To declare that a document is written in XML, enter the following as the first line of the file: <?xml version=“value” encoding=“type” standalone=“type” ?> Where the version attribute indicates the XML version of the document, the encoding attribute specifies the character encoding, and the standalone attribute indicates whether the document contains references to an external DTD. Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 19 XP Adding an xml Declaration • For XHTML documents, use the declaration: <?xml version=“1.0” encoding=“UTF-8” standalone=“no” ?> Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 20 XP The XML Declaration • You can also add the DOCTYPE declaration, which tells XML parsers what DTD is associated with the document <!DOCTYPE root type “id” “url”> Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 21 XP The xml Namespace • A namespace is a unique identifier for elements and attributes originating from a particular document type (like XHTML or MathML) • Two types of namespaces: - default: applied to a root element and any element within it <root xmlns=“namespace”> Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 22 XP The xml Namespace • local: applies to only select elements - Each element in the local namespace is marked by a prefix attached to the element name xmlns: prefix=“namespace” - Identify any element belonging to that namespace by modifying the element name in the tag: prefix:element Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 23 XP Setting the XHTML Namespace • To set XHTML as the default namespace for a document, add the xmlns attribute to the html element with the following value: <html xmlns=http://www.w3.org/1999/xhtml> Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 24 XP Testing an XHTML Document • To test your document, you need to send the file to an XML parser or an XHTML validator • Sometimes the same mistake results in several errors are noted in the report - fixing one mistake can solve several errors Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 25 XP Fixing the errors in the paragraph elements Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 26 XP Report showing a successful validation under XHTML 1.0 transitional Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 27 XP Testing an XHTML Document • To test under another DTD, you’ll need to change the DOCTYPE declaration Changing the DOCTYPE declaration to XHTML 1.0 strict Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 28 XP Using Style Sheets and XHTML • Parsed character data (PCDATA) is text parsed by a browser or parser • Unparsed character data (CDATA) is text not processed by the browser or parser Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 29 XP Using Style Sheets and XHTML • A CDATA section marks a block of text as CDATA so that parsers ignore any text within it Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 30 Tips for Converting old HTMLXP Code to XHTML • Include an xml declaration in the first line of your file so that your document can be accessed by XML parsers •Add a DOCTYPE declaration for one of the XHTML DTDs and check your document for wellformedness and validity whenever you make a change to the code •Add the XHTML default namespace to the html element of your document Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 31 Tips for Converting old HTMLXP Code to XHTML • Make sure that all element and attribute names are in lowercase letters and that all attribute values are placed in quotes •Make sure that all empty elements are entered as one-sided tags. Look especially for improper syntax in the img, hr, and br elements •Make sure that all two-sided tags are properly closed. Old HTML code often does not have closing tags for the p element Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 32 Tips for Converting old HTMLXP Code to XHTML • Make sure that all inline images contain the alt attribute •Look for deprecated attributes such as align, bgcolor, and background, and replace them with the float (or text-align), background-color, and background-image styles •Replace the name attribute with the id attribute •Fix all instances of attribute minimization Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 33 Tips for Converting old HTMLXP Code to XHTML • Replace the use of the font element with either the span element or with a style that applies the same formatting specified by the font element •Replace the use of the width attribute in the td or th element with the width style Tutorial 9 New Perspectives on Creating Web Pages with HTML, XHTML, and XML 34