{
  "attachments": [],
  "comments_archived": true,
  "date": "2003-07-12T17:36:50.000Z",
  "layout": "post",
  "title": "On tag uniqueness and versioning in Pie/Echo feeds",
  "wordpress_id": 441,
  "wordpress_slug": "echo-unique-namespaces",
  "wordpress_url": "http://www.decafbad.com/blog/?p=441",
  "year": "2003",
  "month": "07",
  "day": "12",
  "isDir": false,
  "slug": "echo-unique-namespaces",
  "type": "entry",
  "postName": "2003-07-12-echo-unique-namespaces",
  "html": "<blockquote cite=\"http://radio.userland.com/stories/storyReader$26234\">\n\"feed\" is not a very unique name, and if another format were to come\nalong with the same top level element we would not be able to write a\nformat driver for it. Our architecture keys off the top-level\nelement. I suggest changing the top-level element to indicate the\nformat, and also add a version number so that aggregators can have an\nidea of what spec the content provider is using. I imagine Radio is\nnot the only aggregator that would like to key off the name of the\ntop-level element.\n</blockquote>\n\n\n<div class=\"credit\" align=\"right\"><small>Source:<cite><a href=\"http://radio.userland.com/stories/storyReader$26234\">Radio UserLand: Radio gets some kind of Echo support</a></cite></small>\n\n</div>\n\n\n\n\n\n<p>Nope, \"feed\" seems like a pretty poor choice as a name if the goal was\nuniqueness in the tag name itself.  But, since we have XML namespaces\nto ensure uniqueness between vocabularies, we can instead focus on a\nclear and simple name that only needs to be unique <strong>within</strong> the\nvocabulary.  And as for versioning, why not consider different\nversions of a namespace to be entirely different vocabularies,\neach with different namespaces?</p>\n<p>I did some <a href=\"http://www.google.com/search?q=xml+namespaces&amp;ie=UTF-8&amp;oe=UTF-8\" target=\"_top\">quick</a> <a href=\"http://www.google.com/search?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=xml+namespaces+versioning&amp;btnG=Google+Search\" target=\"_top\">Googling</a> and found the following:</p>\n<blockquote cite=\"http://www.w3.org/TR/1999/REC-xml-names-19990114/Overview.html\">\n... documents, containing multiple markup vocabularies, pose problems\nof recognition and collision.  Software modules need to be able to\nrecognize the tags and attributes which they are designed to process,\neven in the face of \"collisions\" occurring when markup intended for\nsome other software package uses the same element type or attribute\nname.\nThese considerations require that document constructs should have\nuniversal names, whose scope extends beyond their containing document.\nThis specification describes a mechanism, XML namespaces, which\naccomplishes this.\n</blockquote>\n\n\n<div class=\"credit\" align=\"right\"><small>Source:<cite><a href=\"http://www.w3.org/TR/1999/REC-xml-names-19990114/Overview.html\">Namespaces in XML</a></cite></small>\n\n</div>\n\n\n\n\n\n<blockquote cite=\"http://www-106.ibm.com/developerworks/xml/library/x-tipnamsp.html\">\nOne of the core features of XML is its ability to deal with changes in\nthe rules for data (hence the extensible in its name -- Extensible\nMarkup Language).  As changes are made to XML vocabularies, the\ncreation of multiple versions is inevitable.  This makes it necessary\nto mark the versions clearly, for human and machine information.  The\nclear marking of versions can be used for driving validation, or for\nbranch processing according to the requirements of each version.\n\n\n\n<p>You can mark the version of an XML vocabulary in many ways.  This\ndiscussion focuses on the use of XML namespaces for marking versions.</p>\n</blockquote>\n\n\n<div class=\"credit\" align=\"right\"><small>Source:<cite><a href=\"http://www-106.ibm.com/developerworks/xml/library/x-tipnamsp.html\">Tip: Namespaces and versioning</a></cite></small>\n\n</div>\n\n\n\n\n\n<p>I haven't looked into <a href=\"http://www.decafbad.com/twiki/bin/view/Main/RadioUserLand\">RadioUserLand</a> feed handling architecture,\nbut how difficult would it be to use the namespace and tag together\nas key, rather than the tag alone?</p>\n<!--more-->\n\n\n<p>shortname=echo_unique_namespaces</p>\n<div id=\"comments\" class=\"comments archived-comments\"><h3>Archived Comments</h3>\n<ul class=\"comments\">\n<li class=\"comment\" id=\"comment-221082343\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=dc59c5ba9a8aa0a6225d9959eea3b7f3&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Dave Winer</a>\n</div>\n\n\n<p><a href=\"#comment-221082343\" class=\"permalink\"><time datetime=\"2003-07-13T19:34:52\">2003-07-13T19:34:52</time></a></p>\n</div>\n\n\n<div class=\"content\">Easy but ugly.</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221082345\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://mah.everybody.org/weblog/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=59e08b5b7c8ed1c82b20144ba8e65967&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://mah.everybody.org/weblog/\">Mark \"Hex\" Hershberger</a>\n</div>\n\n\n<p><a href=\"#comment-221082345\" class=\"permalink\"><time datetime=\"2003-07-14T16:27:46\">2003-07-14T16:27:46</time></a></p>\n</div>\n\n\n<div class=\"content\">I added namespace support to Emacs' xml.el recently.  It wasn't difficult at all.  Instead of parsing [feed xmlns:e=\"uri\"]...[/feed], into '(feed ...), I parsed it into '({uri}feed ...).  Namespace processing doesn't happen without a switch set to enable it, so it is completely backwards compatible.\nSo, while I haven't looked at how Radio parses stuff either, I think it wouldn't be that hard to add.  And it doesn't have to be ugly, either.</div>\n\n\n</li>\n</ul>\n\n\n</div>\n\n\n",
  "body": "<blockquote cite=\"http://radio.userland.com/stories/storyReader$26234\">\r\n\"feed\" is not a very unique name, and if another format were to come\r\nalong with the same top level element we would not be able to write a\r\nformat driver for it. Our architecture keys off the top-level\r\nelement. I suggest changing the top-level element to indicate the\r\nformat, and also add a version number so that aggregators can have an\r\nidea of what spec the content provider is using. I imagine Radio is\r\nnot the only aggregator that would like to key off the name of the\r\ntop-level element.\r\n</blockquote>\r\n<div class=\"credit\" align=\"right\"><small>Source:<cite><a href=\"http://radio.userland.com/stories/storyReader$26234\">Radio UserLand: Radio gets some kind of Echo support</a></cite></small></div>\r\n<br /><br />\r\nNope, \"feed\" seems like a pretty poor choice as a name if the goal was\r\nuniqueness in the tag name itself.  But, since we have XML namespaces\r\nto ensure uniqueness between vocabularies, we can instead focus on a\r\nclear and simple name that only needs to be unique <strong>within</strong> the\r\nvocabulary.  And as for versioning, why not consider different\r\nversions of a namespace to be entirely different vocabularies,\r\neach with different namespaces?\r\n<br /><br />\r\nI did some <a href=\"http://www.google.com/search?q=xml+namespaces&amp;ie=UTF-8&amp;oe=UTF-8\" target=\"_top\">quick</a> <a href=\"http://www.google.com/search?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=xml+namespaces+versioning&amp;btnG=Google+Search\" target=\"_top\">Googling</a> and found the following:\r\n<br /><br />\r\n<blockquote cite=\"http://www.w3.org/TR/1999/REC-xml-names-19990114/Overview.html\">\r\n... documents, containing multiple markup vocabularies, pose problems\r\nof recognition and collision.  Software modules need to be able to\r\nrecognize the tags and attributes which they are designed to process,\r\neven in the face of \"collisions\" occurring when markup intended for\r\nsome other software package uses the same element type or attribute\r\nname.\r\nThese considerations require that document constructs should have\r\nuniversal names, whose scope extends beyond their containing document.\r\nThis specification describes a mechanism, XML namespaces, which\r\naccomplishes this.\r\n</blockquote>\r\n<div class=\"credit\" align=\"right\"><small>Source:<cite><a href=\"http://www.w3.org/TR/1999/REC-xml-names-19990114/Overview.html\">Namespaces in XML</a></cite></small></div>\r\n<br /><br />\r\n<blockquote cite=\"http://www-106.ibm.com/developerworks/xml/library/x-tipnamsp.html\">\r\nOne of the core features of XML is its ability to deal with changes in\r\nthe rules for data (hence the extensible in its name -- Extensible\r\nMarkup Language).  As changes are made to XML vocabularies, the\r\ncreation of multiple versions is inevitable.  This makes it necessary\r\nto mark the versions clearly, for human and machine information.  The\r\nclear marking of versions can be used for driving validation, or for\r\nbranch processing according to the requirements of each version.\r\n<br /><br />\r\nYou can mark the version of an XML vocabulary in many ways.  This\r\ndiscussion focuses on the use of XML namespaces for marking versions.\r\n</blockquote>\r\n<div class=\"credit\" align=\"right\"><small>Source:<cite><a href=\"http://www-106.ibm.com/developerworks/xml/library/x-tipnamsp.html\">Tip: Namespaces and versioning</a></cite></small></div>\r\n<br /><br />\r\nI haven't looked into <a href=\"http://www.decafbad.com/twiki/bin/view/Main/RadioUserLand\">RadioUserLand</a> feed handling architecture,\r\nbut how difficult would it be to use the namespace and tag together\r\nas key, rather than the tag alone?\r\n<!--more-->\r\nshortname=echo_unique_namespaces\r\n\r\n<div id=\"comments\" class=\"comments archived-comments\">\r\n            <h3>Archived Comments</h3>\r\n            \r\n        <ul class=\"comments\">\r\n            \r\n        <li class=\"comment\" id=\"comment-221082343\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=dc59c5ba9a8aa0a6225d9959eea3b7f3&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Dave Winer</a>\r\n                </div>\r\n                <a href=\"#comment-221082343\" class=\"permalink\"><time datetime=\"2003-07-13T19:34:52\">2003-07-13T19:34:52</time></a>\r\n            </div>\r\n            <div class=\"content\">Easy but ugly.</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221082345\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://mah.everybody.org/weblog/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=59e08b5b7c8ed1c82b20144ba8e65967&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://mah.everybody.org/weblog/\">Mark \"Hex\" Hershberger</a>\r\n                </div>\r\n                <a href=\"#comment-221082345\" class=\"permalink\"><time datetime=\"2003-07-14T16:27:46\">2003-07-14T16:27:46</time></a>\r\n            </div>\r\n            <div class=\"content\">I added namespace support to Emacs' xml.el recently.  It wasn't difficult at all.  Instead of parsing [feed xmlns:e=\"uri\"]...[/feed], into '(feed ...), I parsed it into '({uri}feed ...).  Namespace processing doesn't happen without a switch set to enable it, so it is completely backwards compatible.\r\n\r\nSo, while I haven't looked at how Radio parses stuff either, I think it wouldn't be that hard to add.  And it doesn't have to be ugly, either.</div>\r\n            \r\n        </li>\r\n    \r\n        </ul>\r\n    \r\n        </div>\r\n    ",
  "parentPath": "./content/posts/archives/2003",
  "path": "2003/07/12/echo-unique-namespaces",
  "summary": "\"feed\" is not a very unique name, and if another format were to come\nalong with the same top level element we would not be able to write a\nformat driver for it. Our architecture keys off the top-level\nelement. I suggest changing the top-level element to indicate the\nformat, and also add a version number so that aggregators can have an\nidea of what spec the content provider is using. I imagine Radio is\nnot the only aggregator that would like to key off the name of the\ntop-level element.\n\n\n\nSource:Radio UserLand: Radio gets some kind of Echo support\n\n\n\n\n\n\n\nNope, \"feed\" seems like a pretty poor choice as a name if the goal was\nuniqueness in the tag name itself.  But, since we have XML namespaces\nto ensure uniqueness between vocabularies, we can instead focus on a\nclear and simple name that only needs to be unique within the\nvocabulary.  And as for versioning, why not consider different\nversions of a namespace to be entirely different vocabularies,\neach with different namespaces?\nI did some quick Googling and found the following:\n\n... documents, containing multiple markup vocabularies, pose problems\nof recognition and collision.  Software modules need to be able to\nrecognize the tags and attributes which they are designed to process,\neven in the face of \"collisions\" occurring when markup intended for\nsome other software package uses the same element type or attribute\nname.\nThese considerations require that document constructs should have\nuniversal names, whose scope extends beyond their containing document.\nThis specification describes a mechanism, XML namespaces, which\naccomplishes this.\n\n\n\nSource:Namespaces in XML\n\n\n\n\n\n\n\n\nOne of the core features of XML is its ability to deal with changes in\nthe rules for data (hence the extensible in its name -- Extensible\nMarkup Language).  As changes are made to XML vocabularies, the\ncreation of multiple versions is inevitable.  This makes it necessary\nto mark the versions clearly, for human and machine information.  The\nclear marking of versions can be used for driving validation, or for\nbranch processing according to the requirements of each version.\n\n\n\nYou can mark the version of an XML vocabulary in many ways.  This\ndiscussion focuses on the use of XML namespaces for marking versions.\n\n\n\nSource:Tip: Namespaces and versioning\n\n\n\n\n\n\n\nI haven't looked into RadioUserLand feed handling architecture,\nbut how difficult would it be to use the namespace and tag together\nas key, rather than the tag alone?",
  "needsBuild": true,
  "prevPostPath": "2003/07/11/ultra-liberal-feed-parser",
  "prevPostTitle": "Ultra-liberal feed parser",
  "nextPostPath": "2003/07/16/linkblog-changes",
  "nextPostTitle": "Changes in my link blogging"
}