By reading the docs, I'd say you can use meta tags to parse content which is whether hidden or in a bad format. That's the case of priceCurrency
and datePublished
in the code bellow, taken from schema.org documentation.
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Price: <span itemprop="price">$6.99</span>
<meta itemprop="priceCurrency" content="USD" />
<link itemprop="availability" href="http://schema.org/InStock">In Stock
</div>
Product details
<span itemprop="numberOfPages">224</span> pages
Publisher: <span itemprop="publisher">Little, Brown, and Company</span> -
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991
Language: <span itemprop="inLanguage">English</span>
ISBN-10: <span itemprop="isbn">0316769487</span>
Assuming I am right, I've changed my code to the following.
<div itemscope itemtype="http://schema.org/CreativeWork">
<!-- way too many content -->
<h5>Keywords</h5>
<meta itemprop="keywords" content="Rio de Janeiro, Brazil">
<a href="/tags/rio/" rel="nofollow">Rio de Janeiro</a>
<a href="/tags/brazil/" rel="nofollow">Brazil</a>
</div>
I'll deploy it in a few days, so sorry I can't tell if it works right now.
UPDATE: After deploying the code, it works like a charm. You can see the results through Google Data Testing Tool and compare to the rich snippets used on the real product.