[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Examplotron for rss 1.0 and request for comments
(also posted on rss-dev) I am now testing examplotron [1] against real live vocabularies starting with RSS 1.0 that offers issues simpler but similar than XHTML. The current release (0.3 [2]) does quite a good job for RSS 1.0 core [3]. In fact an examplotron for RSS1.0 core is really just an example with a couple of additional attributes and the following one is checking the item/image/textinput definitions and references using the eg:assert attribute: <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:eg="http://examplotron.org/0/" xmlns:rss10="http://purl.org/rss/1.0/"> <channel rdf:about="http://www.xml.com/xml/news.rss"> <title>XML.com</title> <link>http://xml.com/pub</link> <description> XML.com features a rich mix of information and services for the XML community. </description> <image rdf:resource="http://xml.com/universal/images/xml_tiny.gif" eg:occurs="?" eg:assert="/rdf:RDF/rss10:image/@rdf:about=@rdf:resource"/> <items> <rdf:Seq> <rdf:li resource="http://xml.com/pub/2000/08/09/xslt/xslt.html" eg:occurs="+" eg:assert="/rdf:RDF/rss10:item/@rdf:about=@resource"/> </rdf:Seq> </items> <textinput rdf:resource="http://search.xml.com" eg:occurs="?" eg:assert="/rdf:RDF/rss10:textinput/@rdf:about=@rdf:resource"/> </channel> <image rdf:about="http://xml.com/universal/images/xml_tiny.gif" eg:occurs="?" eg:assert="/rdf:RDF/rss10:channel/rss10:image/@rdf:resource=@rdf:about"> <title>XML.com</title> <link>http://www.xml.com</link> <url>http://xml.com/universal/images/xml_tiny.gif</url> </image> <item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html" eg:occurs="+" eg:assert="/rdf:RDF/rss10:channel/rss10:items/rdf:Seq/rdf:li/@resource=@rdf:about"> <title>Processing Inclusions with XSLT</title> <link>http://xml.com/pub/2000/08/09/xslt/xslt.html</link> <description eg:occurs="?"> Processing document inclusions with general XML tools can be problematic. This article proposes a way of preserving inclusion information through SAX-based processing. </description> </item> <textinput rdf:about="http://search.xml.com" eg:occurs="?" eg:assert="/rdf:RDF/rss10:channel/rss10:textinput/@rdf:resource=@rdf:about"> <title>Search XML.com</title> <description>Search XML.com's XML collection</description> <name>s</name> <link>http://search.xml.com</link> </textinput> </rdf:RDF> I am now working on the modules and I'd like to get your feedback on a first solution that I have partially implemented (not posted yet). I would still like to follow the way we are describing a module such as the Dublin Core module [4] by giving examples of partial RSS1.0 documents with dc elements. I'd propose to add 2 new features in examplotron. The first one would be the element eg:import: <eg:import xlink:href="rss10.xml"/> The meaning of eg:import is to "import" the definitions from another examplotron by merging the possibilities described in the imported document with these from the current document. This is not sufficient to controle modules, though since we obviously do not want to redefine the RSS1.0 core vocabulary in the DC module and we need a way to say that the statements in the DC module about RSS 1.0 core are "non normative". For this, I'd like to propose a "eg:placeHolder" attribute that would say that the current element is just here to identify a path and not to add a new pattern: <channel eg:placeHolder="true"> With these two features, an examplotron for the DC module would be: <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/" xmlns:eg="http://examplotron.org/0/" xmlns:xlink="http://www.w3.org/1999/xlink" eg:placeHolder="true"> <eg:import xlink:href="rss10.xml"/> <channel eg:placeHolder="true"> <dc:publisher eg:occurs="*">The O'Reilly Network</dc:publisher> <dc:creator eg:occurs="*">Rael Dornfest (mailto:rael@o...)</dc:creator> <dc:rights eg:occurs="*">Copyright © 2000 O'Reilly & Associates, Inc.</dc:rights> <dc:date eg:occurs="*">2000-01-01T12:00+00:00</dc:date> <dc:subject eg:occurs="*">XML</dc:subject> <dc:title eg:occurs="*">Your title here</dc:title> <dc:description eg:occurs="*">Description</dc:description> <dc:contributor eg:occurs="*">Contributor</dc:contributor> <dc:type eg:occurs="*">Type</dc:type> <dc:format eg:occurs="*">Format</dc:format> <dc:identifier eg:occurs="*">Identifier</dc:identifier> <dc:source eg:occurs="*">Source</dc:source> <dc:language eg:occurs="*">Language</dc:language> <dc:relation eg:occurs="*">Relation</dc:relation> <dc:coverage eg:occurs="*">Coverage</dc:coverage> </channel> <image eg:placeHolder="true"> <dc:publisher eg:occurs="*">Publisher</dc:publisher> <dc:creator eg:occurs="*">Author</dc:creator> <dc:rights eg:occurs="*">Rights</dc:rights> <dc:date eg:occurs="*">date</dc:date> <dc:subject eg:occurs="*">subject</dc:subject> <dc:title eg:occurs="*">Your title here</dc:title> <dc:description eg:occurs="*">Description</dc:description> <dc:contributor eg:occurs="*">Contributor</dc:contributor> <dc:type eg:occurs="*">Type</dc:type> <dc:format eg:occurs="*">Format</dc:format> <dc:identifier eg:occurs="*">Identifier</dc:identifier> <dc:source eg:occurs="*">Source</dc:source> <dc:language eg:occurs="*">Language</dc:language> <dc:relation eg:occurs="*">Relation</dc:relation> <dc:coverage eg:occurs="*">Coverage</dc:coverage> </image> <item eg:placeHolder="true"> <dc:description eg:occurs="*"> XML is placing increasingly heavy loads on the existing technical infrastructure of the Internet. </dc:description> <dc:publisher eg:occurs="*">The O'Reilly Network</dc:publisher> <dc:creator eg:occurs="*">Simon St.Laurent (mailto:simonstl@s...)</dc:creator> <dc:rights eg:occurs="*">Copyright © 2000 O'Reilly & Associates, Inc.</dc:rights> <dc:date eg:occurs="*">2000-01-01T12:00+00:00</dc:date> <dc:subject eg:occurs="*">XML</dc:subject> <dc:title eg:occurs="*">Your title here</dc:title> <dc:contributor eg:occurs="*">Contributor</dc:contributor> <dc:type eg:occurs="*">Type</dc:type> <dc:format eg:occurs="*">Format</dc:format> <dc:identifier eg:occurs="*">Identifier</dc:identifier> <dc:source eg:occurs="*">Source</dc:source> <dc:language eg:occurs="*">Language</dc:language> <dc:relation eg:occurs="*">Relation</dc:relation> <dc:coverage eg:occurs="*">Coverage</dc:coverage> </item> <textinput eg:placeHolder="true"> <dc:publisher eg:occurs="*">Publisher</dc:publisher> <dc:creator eg:occurs="*">Author</dc:creator> <dc:rights eg:occurs="*">Rights</dc:rights> <dc:date eg:occurs="*">date</dc:date> <dc:subject eg:occurs="*">subject</dc:subject> <dc:title eg:occurs="*">Your title here</dc:title> <dc:description eg:occurs="*">Description</dc:description> <dc:contributor eg:occurs="*">Contributor</dc:contributor> <dc:type eg:occurs="*">Type</dc:type> <dc:format eg:occurs="*">Format</dc:format> <dc:identifier eg:occurs="*">Identifier</dc:identifier> <dc:source eg:occurs="*">Source</dc:source> <dc:language eg:occurs="*">Language</dc:language> <dc:relation eg:occurs="*">Relation</dc:relation> <dc:coverage eg:occurs="*">Coverage</dc:coverage> </textinput> </rdf:RDF> Thanks for your feedback! Eric [1] http://examplotron.org/ [2] http://examplotron.org/0/3/ [3] http://purl.org/rss/1.0/ [4] http://groups.yahoo.com/group/rss-dev/files/Modules/Standard/mod_dc.html -- Rendez-vous à Paris pour net2001. http://www.mynet2001.net/pgmonline2001/it2.html ------------------------------------------------------------------------ Eric van der Vlist Dyomedea http://dyomedea.com http://xmlfr.org http://4xt.org http://ducotede.com ------------------------------------------------------------------------
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|