hCard microformat Validator (beta, of course)

This is an unofficial validator¹/conformance checker of the hCard microformat.

Po polsku
(translations welcome!)

Input

URL

Check entire XHTML or HTML page by entering its HTTP URL.

Fragment

Paste well-formed XHTML fragment or complete document containing hCard.

Upload

Upload HTML or XHTML file to validate it. For this to work your browser must be setting MIME types properly.

Example

If searching for hCards in the wild is tiring, check one of the test-cases:

Browse examples

API & Other

Any page by Referer

<a href="http://hcard.geekhood.net/referrer/">Validate hCards</a>

Bookmarklet

hCard?

RESTful JSON API

Send GET request to http://hcard.geekhood.net/?url=URL to validate&output=json.

Output will be roughly compatible with the Validator.nu JSON API. Likely to change in the future.

Please use this API for validation, not just as an converter/extraction tool.


Send Feedback

You can send feedback via e-mail or the form below.

If you're reporting a bug or have a suggestion, don't forget to include example hCard code.

Result

Congratulations! No errors found.

  1. No issues found.

    GEO latitude
    40.929078
    longitude
    -74.104843
    Formatted name
    Sergey Chernyshev
    Photo URL
    URL
    Name Given Name
    Sergey
    Family Name
    Chernyshev

File source

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<head profile="http://www.w3.org/2006/03/hcard">
	<title>Sergey Chernyshev</title>
	<link rel="meta" type="application/rdf+xml" title="FOAF" href="/sergey.rdf" />
	<meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> 
	<link rel="alternate" type="application/rdf+xml" title="Profile (RDF)" href="/sergey.rdf" />
	<link type="text/css" rel="stylesheet" href="floatbox/floatbox.css" />
	<link type="text/css" rel="stylesheet" href="profile.css" />
	<script type="text/javascript" src="floatbox/floatbox.js"></script>
</head>
<body about="">
<div id="adminbutton"><a href="admin/"><img src="admin.png" alt="Click here to edit this profile" style="border: 0px"/></a></div>

<div id="qranduri">
Person URI:<br/>
<img src="http://chart.apis.google.com/chart?chs=200x200&amp;cht=qr&am­p;chl=http%3A%2F%2Fwww.sergeychernyshev.com%2Fsergey&amp;choe=UTF-8" title="Person URI: http://www.sergeychernyshev.com/sergey" alt="QR code for http://www.sergeychernyshev.com/sergey"/><br/>
<span style="font-weight: bold" href="http://www.sergeychernyshev.com/sergey" rel="foaf:primaryTopic" rev="foaf:isPrimaryTopicOf">http://www.sergeychernyshev.com/sergey</span>
</div>
<div id="langnav">languages: <b>en</b> - <a rel="alternate" hreflang="ru" href="?lang=ru">ru</a></div>
<div class="vcard" about="http://www.sergeychernyshev.com/sergey">
<span rev="foaf:maker" rel="foaf:made" href=""/>
<h1><span class="fn" property="foaf:name" xml:lang="en">Sergey Chernyshev</span> <a rel="rdfs:seeAlso" href="/sergey.rdf" title="My FOAF document"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a></h1>
<p> AKA <span property="foaf:name" xml:lang="en">SergeyChe</span></p>		<h2>Images</h2>
		<div id="images">
		<span rel="foaf:img" resource="http://farm1.static.flickr.com/190/501456486_3baadaee71_d.jpg"><a rel="gallery1" class="photo" href="http://farm1.static.flickr.com/190/501456486_3baadaee71_d.jpg" title="photo"><img src="http://farm1.static.flickr.com/190/501456486_3baadaee71_t_d.jpg" class="thumbnail" alt="photo" rev="foaf:thumbnail" resource="http://farm1.static.flickr.com/190/501456486_3baadaee71_d.jpg"/></a></span>
		<span rel="foaf:img" resource="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_d.jpg"><a rel="gallery1" class="photo" href="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_d.jpg" title="photo"><img src="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_t_d.jpg" class="thumbnail" alt="photo" rev="foaf:thumbnail" resource="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_d.jpg"/></a></span>
		<span rel="foaf:img" resource="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg"><a rel="gallery1" class="photo" href="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg" title="photo"><img src="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg" class="thumbnail" alt="photo" rev="foaf:thumbnail" resource="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg"/></a></span>
		</div><h2>Homepages</h2>
		<div id="homepages"><ul><li rel="foaf:homepage"><a class="url" rel="me" about="http://www.sergeychernyshev.com/" property="dc:title" href="http://www.sergeychernyshev.com/" xml:lang="en">Sergey Chernyshev's home page</a></li>
			</ul></div>
		<h2>Blogs</h2>
			<div id="blogs"><ul><li rel="foaf:weblog"><a class="url" rel="me" about="http://www.sergeychernyshev.com/blog/" property="dc:title" href="http://www.sergeychernyshev.com/blog/" xml:lang="en">Binary Orders of Magnitude</a></li>
				</ul></div>
				<h2>People</h2>
		<div id="people"><ul>
		<li rel="foaf:knows" resource="http://www.sergeychernyshev.com/sergey.rdf#marconeumann">
		<span rel="foaf:homepage" resource="http://www.marconeumann.org"/><a rel="contact" href="http://www.marconeumann.org"><span property="foaf:name" xml:lang="en" about="http://www.sergeychernyshev.com/sergey.rdf#marconeumann">Marco Neumann</span></a> <a href="http://www.sergeychernyshev.com/sergey.rdf#marconeumann" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://roslyakov.com/me">
		<span rel="foaf:homepage" resource="http://roslyakov.com/"/><a rel="contact" href="http://roslyakov.com/"><span property="foaf:name" xml:lang="en" about="http://roslyakov.com/me">Dmitry Roslyakov</span></a> <a href="http://roslyakov.com/me" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://richard.cyganiak.de/foaf.rdf#cygri">
		<span rel="foaf:homepage" resource="http://richard.cyganiak.de/"/><a rel="contact" href="http://richard.cyganiak.de/"><span property="foaf:name" xml:lang="en" about="http://richard.cyganiak.de/foaf.rdf#cygri">Richard Cyganiak</span></a> <a href="http://richard.cyganiak.de/foaf.rdf#cygri" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://danbri.org/foaf.rdf#danbri">
		<span rel="foaf:homepage" resource="http://danbri.org/"/><a rel="contact" href="http://danbri.org/"><span property="foaf:name" xml:lang="en" about="http://danbri.org/foaf.rdf#danbri">Dan Brickley</span></a> <a href="http://danbri.org/foaf.rdf#danbri" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://tomheath.com/id/me">
		<span rel="foaf:homepage" resource="http://tomheath.com/home/html"/><a rel="contact" href="http://tomheath.com/home/html"><span property="foaf:name" xml:lang="en" about="http://tomheath.com/id/me">Tom Heath</span></a> <a href="http://tomheath.com/id/me" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://www.cjmconnors.com/foaf.rdf#me">
		<span rel="foaf:homepage" resource="http://www.cjmconnors.com/"/><a rel="contact" href="http://www.cjmconnors.com/"><span property="foaf:name" xml:lang="en" about="http://www.cjmconnors.com/foaf.rdf#me">Christine Connors</span></a> <a href="http://www.cjmconnors.com/foaf.rdf#me" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://www.sergeychernyshev.com/sergey.rdf#yaronkoren">
		<span rel="foaf:homepage" resource="http://www.yaronkoren.com/"/><a rel="contact" href="http://www.yaronkoren.com/"><span property="foaf:name" xml:lang="en" about="http://www.sergeychernyshev.com/sergey.rdf#yaronkoren">Yaron Koren</span></a> <a href="http://www.sergeychernyshev.com/sergey.rdf#yaronkoren" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li></ul></div>
		<h2>Location</h2>
		<div id="location">
						<span rel="foaf:based_near"><span typeof="geo:Point" class="geo">
				<span property="geo:lat" class="latitude" style="display:none">40.929078</span>
				<span property="geo:long" class="longitude" style="display:none">-74.104843</span>
				</span></span>				<span rel="foaf:based_near"><span typeof="geo:Point">
				<span property="geo:lat" style="display:none">40.747777</span>
				<span property="geo:long" style="display:none">-73.980045</span>
				</span></span>		<div id="map" style="width: 600px; height: 400px"><img src="http://maps.google.com/staticmap?size=600x400&amp;markers=40.929078,-74.104843|40.747777,-73.980045%7C&amp;maptype=­roadmap&amp;key=ABQIAAAAq_i4aTseMGLic8bgu1NQHRSEs_qikIHa8VCb2-5R0mAlXQZKPRRLkUrkPAVXUBMadjFafv4_Xrmr0g" alt="locations map" width="600" height="400"/></div>
		</div>
		</div>
<div style="border-top: 1px solid silver; padding: 5px; align: center; margin-top: 20px">
<a href="http://validator.w3.org/check/referrer" title="Check XHTML + RDFa validity"><img src="http://www.w3.org/Icons/valid-xhtml-rdfa-blue" alt="Valid XHTML + RDFa" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://www.w3.org/2007/08/pyRdfa/extract?uri=referer" title="Extract RDF from RDFa on this page"><img src="http://www.w3.org/Icons/SW/Buttons/sw-rdfa-orange.png" alt="Extract RDF from RDFa on this page" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://hcard.geekhood.net/?url=http%3A%2F%2Fwww.serg­eychernyshev.com%2Fprofile%2F%3F" title="Show hCard information on this page"><img src="hcard.png" alt="Show hCard information on this page" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://gmpg.org/xfn/" title="XFN Homepage"><img src="xfn-btn.gif" alt="XFN" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://microformats.org/wiki/geo" title="Geo Microformat Page"><img src="geo.png" alt="geo" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
</div>
<div style="border-top: 1px solid silver; padding: 5px; align: center; font-size: small; text-align: center">Powered by <a href="http://code.google.com/p/my-semantic-profile/">My Semantic Profile</a> (v.0.4.3 r116)</div>
</body>
</html>

Parsed source

<html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  <head profile="http://www.w3.org/2006/03/hcard">
    <title>Sergey Chernyshev</title>
    <link rel="meta" type="application/rdf+xml" title="FOAF" href="/sergey.rdf"/>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
    <link rel="alternate" type="application/rdf+xml" title="Profile (RDF)" href="/sergey.rdf"/>
    <link type="text/css" rel="stylesheet" href="floatbox/floatbox.css"/>
    <link type="text/css" rel="stylesheet" href="profile.css"/>
    <script type="text/javascript" src="floatbox/floatbox.js"/>
  </head>
  <body about="">
<div id="adminbutton"><a href="admin/"><img src="admin.png" alt="Click here to edit this profile" style="border: 0px"/></a></div>

<div id="qranduri">
Person URI:<br/><img src="http://chart.apis.google.com/chart?chs=200x200&amp;cht=qr&am­p;chl=http%3A%2F%2Fwww.sergeychernyshev.com%2Fsergey&amp;choe=UTF-8" title="Person URI: http://www.sergeychernyshev.com/sergey" alt="QR code for http://www.sergeychernyshev.com/sergey"/><br/><span style="font-weight: bold" href="http://www.sergeychernyshev.com/sergey" rel="foaf:primaryTopic" rev="foaf:isPrimaryTopicOf">http://www.sergeychernyshev.com/sergey</span>
</div>
<div id="langnav">languages: <b>en</b> - <a rel="alternate" hreflang="ru" href="?lang=ru">ru</a></div>
<div class="vcard" about="http://www.sergeychernyshev.com/sergey">
<span rev="foaf:maker" rel="foaf:made" href=""/>
<h1><span class="fn" property="foaf:name" xml:lang="en">Sergey Chernyshev</span> <a rel="rdfs:seeAlso" href="/sergey.rdf" title="My FOAF document"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a></h1>
<p> AKA <span property="foaf:name" xml:lang="en">SergeyChe</span></p>		<h2>Images</h2>
		<div id="images">
		<span rel="foaf:img" resource="http://farm1.static.flickr.com/190/501456486_3baadaee71_d.jpg"><a rel="gallery1" class="photo" href="http://farm1.static.flickr.com/190/501456486_3baadaee71_d.jpg" title="photo"><img src="http://farm1.static.flickr.com/190/501456486_3baadaee71_t_d.jpg" class="thumbnail" alt="photo" rev="foaf:thumbnail" resource="http://farm1.static.flickr.com/190/501456486_3baadaee71_d.jpg"/></a></span>
		<span rel="foaf:img" resource="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_d.jpg"><a rel="gallery1" class="photo" href="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_d.jpg" title="photo"><img src="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_t_d.jpg" class="thumbnail" alt="photo" rev="foaf:thumbnail" resource="http://farm1.static.flickr.com/39/110310713_aaac53b2d3_d.jpg"/></a></span>
		<span rel="foaf:img" resource="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg"><a rel="gallery1" class="photo" href="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg" title="photo"><img src="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg" class="thumbnail" alt="photo" rev="foaf:thumbnail" resource="http://farm1.static.flickr.com/46/110318538_16a19caad6_d.jpg"/></a></span>
		</div><h2>Homepages</h2>
		<div id="homepages"><ul><li rel="foaf:homepage"><a class="url" rel="me" about="http://www.sergeychernyshev.com/" property="dc:title" href="http://www.sergeychernyshev.com/" xml:lang="en">Sergey Chernyshev's home page</a></li>
			</ul></div>
		<h2>Blogs</h2>
			<div id="blogs"><ul><li rel="foaf:weblog"><a class="url" rel="me" about="http://www.sergeychernyshev.com/blog/" property="dc:title" href="http://www.sergeychernyshev.com/blog/" xml:lang="en">Binary Orders of Magnitude</a></li>
				</ul></div>
				<h2>People</h2>
		<div id="people"><ul><li rel="foaf:knows" resource="http://www.sergeychernyshev.com/sergey.rdf#marconeumann">
		<span rel="foaf:homepage" resource="http://www.marconeumann.org"/><a rel="contact" href="http://www.marconeumann.org"><span property="foaf:name" xml:lang="en" about="http://www.sergeychernyshev.com/sergey.rdf#marconeumann">Marco Neumann</span></a> <a href="http://www.sergeychernyshev.com/sergey.rdf#marconeumann" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://roslyakov.com/me">
		<span rel="foaf:homepage" resource="http://roslyakov.com/"/><a rel="contact" href="http://roslyakov.com/"><span property="foaf:name" xml:lang="en" about="http://roslyakov.com/me">Dmitry Roslyakov</span></a> <a href="http://roslyakov.com/me" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://richard.cyganiak.de/foaf.rdf#cygri">
		<span rel="foaf:homepage" resource="http://richard.cyganiak.de/"/><a rel="contact" href="http://richard.cyganiak.de/"><span property="foaf:name" xml:lang="en" about="http://richard.cyganiak.de/foaf.rdf#cygri">Richard Cyganiak</span></a> <a href="http://richard.cyganiak.de/foaf.rdf#cygri" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://danbri.org/foaf.rdf#danbri">
		<span rel="foaf:homepage" resource="http://danbri.org/"/><a rel="contact" href="http://danbri.org/"><span property="foaf:name" xml:lang="en" about="http://danbri.org/foaf.rdf#danbri">Dan Brickley</span></a> <a href="http://danbri.org/foaf.rdf#danbri" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://tomheath.com/id/me">
		<span rel="foaf:homepage" resource="http://tomheath.com/home/html"/><a rel="contact" href="http://tomheath.com/home/html"><span property="foaf:name" xml:lang="en" about="http://tomheath.com/id/me">Tom Heath</span></a> <a href="http://tomheath.com/id/me" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://www.cjmconnors.com/foaf.rdf#me">
		<span rel="foaf:homepage" resource="http://www.cjmconnors.com/"/><a rel="contact" href="http://www.cjmconnors.com/"><span property="foaf:name" xml:lang="en" about="http://www.cjmconnors.com/foaf.rdf#me">Christine Connors</span></a> <a href="http://www.cjmconnors.com/foaf.rdf#me" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li><li rel="foaf:knows" resource="http://www.sergeychernyshev.com/sergey.rdf#yaronkoren">
		<span rel="foaf:homepage" resource="http://www.yaronkoren.com/"/><a rel="contact" href="http://www.yaronkoren.com/"><span property="foaf:name" xml:lang="en" about="http://www.sergeychernyshev.com/sergey.rdf#yaronkoren">Yaron Koren</span></a> <a href="http://www.sergeychernyshev.com/sergey.rdf#yaronkoren" title="FOAF"><img src="foaf.png" alt="FOAF" style="border: 0px"/></a>		</li></ul></div>
		<h2>Location</h2>
		<div id="location">
						<span rel="foaf:based_near"><span typeof="geo:Point" class="geo">
				<span property="geo:lat" class="latitude" style="display:none">40.929078</span>
				<span property="geo:long" class="longitude" style="display:none">-74.104843</span>
				</span></span>				<span rel="foaf:based_near"><span typeof="geo:Point">
				<span property="geo:lat" style="display:none">40.747777</span>
				<span property="geo:long" style="display:none">-73.980045</span>
				</span></span>		<div id="map" style="width: 600px; height: 400px"><img src="http://maps.google.com/staticmap?size=600x400&amp;markers=40.929078,-74.104843|40.747777,-73.980045%7C&amp;maptype=­roadmap&amp;key=ABQIAAAAq_i4aTseMGLic8bgu1NQHRSEs_qikIHa8VCb2-5R0mAlXQZKPRRLkUrkPAVXUBMadjFafv4_Xrmr0g" alt="locations map" width="600" height="400"/></div>
		</div>
		</div>
<div style="border-top: 1px solid silver; padding: 5px; align: center; margin-top: 20px">
<a href="http://validator.w3.org/check/referrer" title="Check XHTML + RDFa validity"><img src="http://www.w3.org/Icons/valid-xhtml-rdfa-blue" alt="Valid XHTML + RDFa" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://www.w3.org/2007/08/pyRdfa/extract?uri=referer" title="Extract RDF from RDFa on this page"><img src="http://www.w3.org/Icons/SW/Buttons/sw-rdfa-orange.png" alt="Extract RDF from RDFa on this page" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://hcard.geekhood.net/?url=http%3A%2F%2Fwww.serg­eychernyshev.com%2Fprofile%2F%3F" title="Show hCard information on this page"><img src="hcard.png" alt="Show hCard information on this page" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://gmpg.org/xfn/" title="XFN Homepage"><img src="xfn-btn.gif" alt="XFN" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
<a href="http://microformats.org/wiki/geo" title="Geo Microformat Page"><img src="geo.png" alt="geo" style="margin: 0px 5px 0px 5px; border: 0px"/></a>
</div>
<div style="border-top: 1px solid silver; padding: 5px; align: center; font-size: small; text-align: center">Powered by <a href="http://code.google.com/p/my-semantic-profile/">My Semantic Profile</a> (v.0.4.3 r116)</div>
</body>
</html>

Credits

Written by . Icons are from Tango Icon Library. Test cases include hCard Acid test by Dmitry Baranovskiy, examples from microformats.org and hCard test suite.

Source code is available under the BSD license.


¹ It's not a validator in the XML/SGML sense.