272
Chapter 7
The XHTML 1.0 checklist
❏    Change your DOCTYPE to Strict XHTML. Or, you can 
use Transitional XHTML if you’re still using Transitional 
HTML.
❏    Add the xmlns, lang, and xml:lang attributes to your 
<html> opening tag.
❏    The <html> tag must be the first tag after the DOCTYPE 
and the </html> closing tag must be the last tag in the 
document.
❏    All element names must be written with lowercase letters.
❏    All opening tags must have closing tags.  Or, if an element is 
empty, the tag must end with a space and then />.
❏    All attributes must have values, and those values must be 
surrounded by double quotes.
❏    Don’t use & in the content of your HTML. & is for starting 
entities, so use &amp; instead. Also convert any other special 
characters to entities.
Here’s the list of things you must do to convert from HTML to XHTML.
We’ve checked off the 
requirements that you’re 
already on top of. So, 
that doesn’t leave you with 
much to do to move to 
XHTML 1.0.
If you started from scratch reading this book and you’ve been diligent in using 
strict HTML 4.01, then moving to XHTML 1.0 is going to be fast for you. 
You really only have a few things you need to take care of, and we’ll talk about 
those next. 
On the other hand, if you have a lot of legacy HTML you need to convert, 
then you may have a big job on your hands. But, even in that case, there are 
some tools that can help get you there. We’ll talk about those too.
You’re much closer to using XHTML than 
you might think
Even though HTML and XHTML are almost the same, there are a few small 
differences, as you’ve seen. Here’s a handy checklist for moving from HTML 4.01 
Strict to XHTML 1.0 Strict:
We’re going to talk 
about what this means.
a checklist for xhtml strict
Pdf form save in reader - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
save data in pdf form reader; extract data from pdf file to excel
Pdf form save in reader - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extract data from pdf form fields; collect data from pdf forms
moving to xhtml
you are here 
273
If my HTML is 
transitional 4.01, and I want 
to switch to XHTML strict, 
then I have a little more work 
to do, right?
HTML 4.01 Strict and XHTML 1.0 Strict are 
basically the same.  So, going from transitional 
HTML 4.01 to HTML Strict or XHTML Strict is 
about the same amount of work.  To change your 
transitional HTML to either, you’ll first need to do 
all the things we mentioned in Chapter 6 to remove 
presentation tags and clean up your HTML. 
There is also a transitional XHTML 1.0 version, 
which is essentially the same as transitional HTML 
4.01. They both allow deprecated presentational 
elements, and inline elements directly in the body 
of your page.  So, if you want to use that instead, 
remember to use the transitional XHTML 1.0 
DOCTYPE instead of the strict DOCTYPE.
Right.  The checklist assumes 
you’re already writing strict HTML.
C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
SaveFile(String filePath): Save PDF document file to a specified path form (Here, we take a blank form as an open a file dialog and load your PDF document in
change font size pdf form reader; export excel to pdf form
VB.NET Image: How to Save Image & Print Image Using VB.NET
printing multi-page document files, like PDF and Word is used to illustrate how to save a sample RE__Test Public Partial Class Form1 Inherits Form Public Sub New
can reader edit pdf forms; extract data from pdf file
274
Chapter 7
1
Change your DOCTYPE to XHTML 1.0 Strict.
You already know all about DOCTYPEs and you’re used to seeing the 
HTML 4.01 Strict document type. Well, there’s also a document type for 
XHTML 1.0 Strict, and you need to change your DOCTYPE to use it 
instead. Here’s what it looks like:
<!DOCTYPE html 
PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
Just like the HTML DOCTYPE, 
this is a public document type.
It’s for the XHTML 1.0 
Strict version of XHTML.
And it has a URL pointing to the  
definition of XHTML 1.0 Strict.
2
Add the xmlns, lang and xml:lang attributes to your <html> element.
Remember that XML can be used to define many markup languages other 
than XHTML. To keep all those languages straight, XML needs to know 
which language you’re talking about when you use the element 
<html>
(after 
all, someone could come along and make up their own language with XML 
and call it the “Hippo Tipping Markup Language,” which would cause 
mass confusion). So, to keep things straight, the xmlns attribute specifies 
which language the 
<html>
element belongs to.  And what about all the rest 
of the elements inside the 
<html>
element?  By default, they inherit the 
xmlns attribute of their parent.
The 
<html>
element also needs lang and xml:lang attributes, which 
specify the language being used in the XML document.  Here’s what your 
<html>
opening tag should look like in XHTML:
<html xmlns=”http://www.w3.org/1999/xhtml” lang=”en” xml:lang=”en”>
The xmlns attribute is used to 
identify which XML language 
“html” belongs to.
XML uses a URL as a unique identifier for a 
language. If someone has written a “Hippo Tipping 
Markup Language” they might have used “http://www.
hippotipping.com/html” as their identifier. It doesn’t 
matter what is at the URL - the URL alone is 
enough to make it unique.
And we just need to specify 
that we’re using English.
Going from strict HTML to XHTML 1.0 in three steps
going from html to xhtml
Depending on the way your 
XHTML is interpreted by the 
browser, you may need either 
one of these, so it’s best 
practice to use both.
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to the end of another and save to a single PDF file.
extract table data from pdf; extract data from pdf form to excel
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
this RasterEdge XDoc.PDF SDK, you can simply delete a single page from a PDF document using VB.NET or remove any page from a PDF document and save to local
how to fill out a pdf form with reader; using pdf forms to collect data
moving to xhtml
you are here 
275
3
All empty tags should end in “ />”, not “>”.
This is the final, and most bizarre step of the HTML to XHTML 1.0 
transformation. But it’s not so mysterious if you know the background.
We’ve told you XHTML is stricter than HTML, and one area where it is 
stricter is with closing tags. In HTML, you can have an empty element 
without a closing tag. But in XHTML, if you aren’t going to have a closing 
tag, you have to tell the browser about it by putting a slash before the final 
“>”.  So, take the <br> element as an example. In HTML we just write 
<br>. But in XHTML, we write <br/>. That little slash on the end tells the 
browser it shouldn’t expect a closing tag, because the <br/> is all there is.
Now you might have noticed we didn’t include a space before the “/>”. 
That’s because XHTML doesn’t require it. However, some older browsers 
can’t recognize “/>” without a space before the slash, so, to be backwards 
compatible, just put a space before your slash in “ />”.
Let’s look at a couple of examples so you know how to transform HTML 
empty elements into XHTML empty elements:
<img src=”drinks.gif” alt=”Drinks”>
<br>
<img src=”drinks.gif” alt=”Drinks” />
<br />
Old school HTML 4.01 Strict
New and improved XHTML 1.0
No closing tags? No 
problem in HTML.
But with XHTML we gotta 
declare our intentions. If your 
element is empty, let the 
browser know by putting a “/” 
before the ending “>”.
And, give those older 
browsers a break by 
inserting a space before 
the forward slash.
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
to extract single or multiple pages from adobe PDF file and save into a The portable document format, known as PDF document, is a widely-used form of file
extract data out of pdf file; extract data from pdf
C# Image: Save or Print Document and Image in Web Viewer
or image, you can easily save the changes to DLL Library, including documents TIFF, PDF, Excel, Word string fileName = Request.Form["saveFileName"]; string fid
extracting data from pdf forms; exporting pdf data to excel
276
Chapter 7
Q: 
Can you explain the xmlns 
attribute a bit more; I feel like I missed 
something.
A: 
You’re not the only one.  This is one 
of the most confusing parts of XML. Okay, 
it works like this: lots of people can create 
XML languages (personally, we say get out 
and see the world, but some people seem 
to be into this sort of thing).  Let’s say two 
people call their elements the same thing. 
Take the name <table>, for instance.  For 
some people this is an element in HTML; 
for others, it’s part of an XML language for 
furniture. So, if you use <table> in your XML, 
how do we know which one you mean? 
That’s where the xmlns attribute comes in. 
The xmlns attribute holds a unique identifier 
that determines which language you mean. 
In the case of XHTML, that identifier is
http://www.w3.org/1999/xhtml
Q: 
But wait, that’s a URL, not an 
identifier.
A: 
Yeah, XML people are weird that 
way. It may look like a URL to you, but just 
think of it as something that is supposed to 
be unique. The idea is that you could visit 
that URL and find out something about the 
language, although there is no requirement 
that anything actually exist at the URL.
Q: 
If this is XHTML, how come the 
root element isn’t <xhtml> rather than 
<html>?
A: 
Because XHTML is meant to be 
backwards compatible with HTML. If they 
changed the root element to <xhtml> then 
older browsers wouldn’t know how to display 
your pages.
Q: 
You mentioned some tools earlier 
that could help convert my HTML to 
XHTML.
A: 
Yes, there’s a great little tool called 
Tidy that can do much of the work to get 
your HTML documents validating and ready 
for XHTML. Tidy has a number of options 
and can take nonvalidating HTML and 
perform many of the tasks needed to make 
HTML validate. It can also remove a fair 
amount of legacy presentational HTML and 
replace it with CSS. You can find Tidy at 
http://tidy.sourceforge.net.
Q: 
So if I have strict HTML, this is 
really all I have to do to move to XHTML?
A: 
That’s right. In fact, let’s give  
it a try...
there are no
Dumb Questions
You’re going to take Tony’s journal (remember him from Chapter 3?) and convert it 
to XHTML. We already cleaned up his code and changed it to HTML 4.01 Strict for 
you – we nested his <img> elements inside <p> elements and added alt attributes, 
put his Burma Shave slogan in a <p> element, and added a <meta> tag.  You’ll find 
this HTML 4.01 Strict version of “journal.html” in the “chapter7/journal” folder. 
Here’s what you need to do:
1
2
3
4
Change your DOCTYPE from HTML 4.01 Strict to XHTML 1.0 Strict.
Add the xmlns, lang and xml:lang attributes to your <html> opening tag.
Change the ending “>” characters on your empty elements to “ />”.
Save, and reload the page in your browser.
Be sure to check your work at the end of the chapter.
Exercise 
root elements and namespaces
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Description: Convert to DOCX/TIFF with specified zoom value and save it into stream. Parameters: zoomValue, The magnification of the original PDF page size.
pdf form save with reader; pdf data extraction open source
C# Create PDF from Tiff Library to convert tif images to PDF in C#
Description: Convert to PDF and save it on the disk. Parameters: Name, Description, Valid Value. Description: Convert to PDF and save it into stream. Parameters:
how to save filled out pdf form in reader; vb extract data from pdf
moving to xhtml
you are here 
277
Validator
We’re totally up 
on the new XHTML 
standards and ready to 
enforce them. 
Validation: it’s not just for HTML
After Chapter 6, you’re an expert at using the W3C validator, and you’ll 
find the validator is up to date and ready to validate your XHTML. You 
do that in exactly the same way that you validated HTML.
Go to validator.w3.org and either paste 
in your XHTML, upload it, or point the 
validator to your URL. 
The validator will check 
your XHTML and report 
that it’s valid, or report 
any errors to you.
Q: 
How does the validator know whether 
I’m validating HTML or XHTML? After all, this 
is the same page I used for HTML.
A: 
The validator looks at your DOCTYPE 
declaration, which states that the document is 
either XHTML Transitional or XHTML Strict, and 
that’s what it bases its validation on.
there are no
Dumb Questions
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
online form pdf output; extract pdf form data to excel
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
extract data from pdf to excel; extract data from pdf c#
278
Chapter 7
You didn’t think we’d let you off the hook 
without validating your XHTML did you? 
Validate the “lounge.html” file in the 
“chapter7/lounge” folder, and the  
“journal.html” file in the “chapter7/journal/” 
folder (the one you turned into XHTML a 
couple of pages ago) at the W3C. If you 
see any errors, check your typing, get 
them fixed, and try again.
Congratulations, 
you’ve just written 
your first XHTML!
You’ve done it: you’ve transitioned 
your HTML over to XHTML. While 
your markup doesn’t look much different, 
there’s a whole new set of possibilities 
coming down the road for XHTML 
documents. And, even better, you’ve 
adopted a whole technology that isn’t that 
much different from what you already know. Now’s 
the time you can go tell all your friends you’re already 
using XHTML (we won’t tell them there isn’t much of a 
difference between HTML and XHTML if you don’t).
Oh, and if we haven’t said so already, XHTML is just 
as compatible with CSS for styling, and you’re just a few 
pages from adding your first style to an XHTML page.
Exercise 
validating xhtml
moving to xhtml
you are here 
279
XHTML does seem like a good thing, and moving from HTML 4.01 
Strict is almost trivial, so, why not just go for it?  But, before you do, you 
should know that XHTML is still a little ahead of the curve in terms of 
browser support.  So, while you can use XHTML today, there are a few 
issues you need to keep in mind.
Right now the biggest problem you’re going to encounter is that while 
you might be using XHTML, some browsers are still going to treat your 
pages as HTML. In most cases, this is fine, because XHTML is designed 
to be backwards compatible with HTML. However, in the worst case, a 
browser may display your XHTML in the dreaded quirks mode (look 
back at Chapter 6 if you’ve forgotten about quirks mode), so you could 
get some inconsistent display of your XHTML. What to do? Well, the 
best you can do right now is test your XHTML in a variety of browsers 
to make sure things are working as you expect.
XHTML sounds like a 
good thing. Is it really 
ready for prime time?
It really comes down to whether or not the XML benefits 
of XHTML are meaningful to you. If they are, you 
can start using XHTML today – just be diligent about 
validating so that in the future, when real, strict XHTML 
browsers emerge, your pages will play well with them. 
(Because XHTML browsers are strict, they won’t accept 
invalid XHTML.)
HTML has a long life ahead of it, so if you don’t have 
a good reason to switch, you can stick with HTML for a 
while.  And, if you use HTML 4.01 Strict and validate 
your pages, you’ll be ready to switch to XHTML at a 
moment’s notice.
If browsers are 
just going to treat 
my XHTML like HTML, 
then why should I bother 
writing XHTML?  Seems 
like a waste of time 
to me.
280
Chapter 7
Tonight’s talk:  HTML and XHTML 
ask for your support.
HTML
XHTML
I’m certainly glad to have the opportunity to 
persuade you to stick with me: HTML 4.01. I’m 
going to be around a long time, have no worries 
there.
HTML, face it, you’re yesterday’s news. The 
standards guys have already moved on. I’m 
the future. Anyone with their head on straight 
should be moving to XHTML.
There’s really just not enough difference between 
you and me for people to really care. I mean, 4.01 
is exactly the same as XHTML 1.0. 
How can you say we’re the same?  You’re 
HTML; I’m XML.
And right now, that and a quarter won’t 
even get you a cup of coffee.
Ah, but just wait. The number of devices that 
read XHTML is increasing every day. And 
there are a lot of applications out there that 
are gearing up to use XHTML.
That’s the problem: you think everyone wants to 
have applications using XHTML, or that everyone 
is creating Web sites for mobile devices. Some 
people just wanna make good Web sites. Why are 
you asking them to go through all this pain?
Well that’s just it – there really is no pain. 
If you’re already using HTML 4.01, then 
XHTML is just a hop, skip, and jump away. 
All you have to do is change your DOCTYPE, 
and add a couple of attributes to your 
<html>
element. So, what’s the big deal? Why not have 
the latest and greatest with just a few minutes 
work?
html versus xhtml
moving to xhtml
you are here 
281
HTML
XHTML
Hey, that’s a good thing. The designers of 
XHTML knew that not all browsers would 
support XHTML, so they made it backwards 
compatible. In other words, you can move to 
XHTML today, and still have it all work even 
on older browsers.
You’re forgetting a few of the downsides. A lot 
of browsers don’t handle XHTML very well.  In 
fact, they just see it as HTML. So you do all that 
work and then you’re just fooling yourself that your 
XHTML is somehow different.
Ah, but that’s changing; more and more 
support for XHTML is arriving every day. So, 
I say, go ahead and change over.  It’s easy, and 
when the new browsers and devices get here, 
you’ll be ready without even trying.
But what’s the point? If your XHTML is just 
considered HTML by a browser, then it’s just 
HTML!
You can’t envision all the ways XHTML is 
going to be used in the future. XHTML is the 
way, and by moving to XHTML now, you’ll be 
ready.
This is all great, but I keep saying people just don’t 
care.  I’m already good enough for them.  Lots of 
people have no need for XML.
Okay; let’s say you’re right, and XHTML is going 
to be the way of the future. Fine. But as you also 
said, XHTML is just a hop, skip, and a jump away. 
So, my users can just wait until XHTML gets here, 
and they can hop, skip, and jump then.
What’s that saying? “You can’t teach an old 
dog a new trick?”
I think you mean “You can lead a horse to 
water...”
Documents you may be interested
Documents you may be interested