{"id":308,"date":"2004-07-01T07:16:59","date_gmt":"2004-07-01T14:16:59","guid":{"rendered":"http:\/\/antone.geckotribe.com\/alpha-gecko\/2004\/07\/01\/the-dangers-of-developing-xml-formats-alone\/"},"modified":"2006-03-25T10:23:25","modified_gmt":"2006-03-25T17:23:25","slug":"the-dangers-of-developing-xml-formats-alone","status":"publish","type":"post","link":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/the-dangers-of-developing-xml-formats-alone\/","title":{"rendered":"The dangers of developing XML formats alone"},"content":{"rendered":"<p>Yesterday, I posted a proposal to the Atom wiki for a method of specifying details about a person (their name, URL, etc.) once, and referring to it from other places in a feed. The main point was to avoid duplicating data. The original declaration of a person was to have an attribute named \"id\" (eg. &lt;person id=\"qwerty\"&gt;), and that person could be referred to elsewhere using an attribute named \"ref\" (eg. &lt;author ref=\"qwerty\" \/&gt;). It didn't take long for suggestions to come in for a few little changes.<\/p>\n<p>The first suggestion was to use \"xml:id\" rather than just \"id\".  xml:id is on it's way to becoming a standard attribute for specifying a locally unique id. The next suggestion was to use \"xlink:href\" instead of \"ref\". Why would it matter whether someone else's names were used or we made up our own? To a lot of people, it wouldn't make a lick of difference. But if you want to validate the document, which would include verifying that all ids are locally unique, then you need a way to tell the validator that ids are <i>supposed<\/i> to be unique. If xml:id is used, then validators that know about xml:id will know to do that validation without having to refer to an external document that explains it to them. I imagine xlink:href is similar--a validator that understands it will know to verify that the id being referred to exists.<\/p>\n<p>I'm one of those people to whom the name change wouldn't make a lick of difference. If I were to develop an XML format in a vacuum, I'd never catch these little details that do matter to other people. Score a point for design by committee.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday, I posted a proposal to the Atom wiki for a method of specifying details about a person (their name, URL, etc.) once, and referring to it from other places in a feed. The main point was to avoid duplicating data. The original declaration of a person was to have an attribute named \"id\" (eg....<br \/>[<a class=\"moretag\" href=\"https:\/\/zeta.geckotribe.com\/alpha-gecko\/the-dangers-of-developing-xml-formats-alone\/\">read more<\/a>]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[],"class_list":["post-308","post","type-post","status-publish","format-standard","hentry","category-xml"],"_links":{"self":[{"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/posts\/308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/comments?post=308"}],"version-history":[{"count":0,"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/posts\/308\/revisions"}],"wp:attachment":[{"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/media?parent=308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/categories?post=308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zeta.geckotribe.com\/alpha-gecko\/wp-json\/wp\/v2\/tags?post=308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}