Up: SyntaxConsiderations has background and discussion on why we chose this format.
Process: EchoExampleProcess See also : SyntaxExtensionMechanism, PropertiesVsRoles
Medium-Sized Echo Feed
<?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://purl.org/echo/" version="1.0" xml:lang="en-us" xml:base="http://example.com"> <title>My First Weblog</title> <summary>Ain't the Interweb great?</summary> <link>/johndoe/weblog/</link> <author> <name>John Doe</name> <url>/johndoe/</url> <email>john.doe@example.com</email> </author> <entry id="e45"> <title>My First Entry</title> <summary>A very boring entry; just learning how to blog here...</summary> <link>/weblog/archive/45.html</link> <created>2003-02-05T12:29:29Z</created> <issued>2003-02-05T12:29:29Z</issued> <modified>2003-02-05T12:29:29Z</modified> <content type="multipart/alternative"> <content type="image/jpeg" encoding="base64"> xo+Hello0AFWeblogh5FWorldh1mImagedsTbrVbF3 </content> <content type="text/html" xml:lang="en-us" mode="escaped" rel="fragment"> <![CDATA[<p>Hello, <em>weblog</em> world! 2 < 4!</p>]]> </content> <content type="application/xhtml+xml" xml:lang="en-us" rel="fragment"> <p xmlns="http://www.w3.org/1999/xhtml"> Hello, <em>weblog</em> world! 2 < 4! </p> </content> <content type="application/pdf" src="http://example.org/blog/hello.pdf" /> </content> </entry> </feed>
Notes
-
attributes used sparingly
-
All dates are W3CDTF
-
All Echo elements in a single namespace, but other namespaces can be used
-
Additional contributors can be included using the BiblioGraphy extension.
-
xml:lang attributes can be used on any element to designate the language used there.
Other Examples
Issues
-
Syntax should be updated.
Issues (being) addressed elsewhere
-
Property-centric or Role-centric? -- see PropertiesVsRoles.
-
DublinCore Metadata Element Set in echo's namespace? -- see EchoInDublinCore NechoInDublinCore NechoInDublinCoreOptionalRdf
-
What constitutes an ID? -- see PermaLinks, EntryIdentifier, PostIdSpec and WhatIsEntryId.
-
Should content be escaped or inline? -- see EscapedHtmlDiscussion and content
-
Content by Reference? -- see MimeContent, EntryContentDiscussion, and content.
-
Sub-Entries? -- see EntryContentDiscussion and content.
-
Authors versus persons and roles? -- see AuthorElementDiscussion and PropertiesVsRoles.
-
Avoiding Duplication of Author data? -- see AuthorElementDiscussion.
-
Inclusion of other extensions needs to be considered -- see SyntaxExtensionMechanism.
-
Subtitle pulled 7/4/2003 -- see SubTitle for a summary of the arguments
-
Versioning moved -- see VersionNo for a summary of the arguments
-
Relative Links moved -- see RelativeLinks for a summary of the arguments
-
<weblog> and <homepage> were replaced with a single <url> -- see WeblogVsUrl
-
How to include comments? -- see CommentExtension, IsaCommentAnEntry
Comments
Multiple Content Elements
[Moved to MultipleContentDiscussion 2003-07-27.]
Languages in feeds
[MaciejCeglowski, RefactorOk] It should be possible to have multiple lang attributes on an entry, because there are bloggers out there who mix languages in their writing. This seems particularly frequent in non-English tech blogs, where people switch in and out.
-
[DavidJanes] +1 to everything Maciej says about multi-languages and blogs; he has a lot of practical experience in this area
-
[FrançoisGranger] In this blog every entry is in two languages.
-
[RabbleRouser, RefactorOk] +1 It would be really nice to be able to support both a mix of languages, as well as entries where you have two or more versions of the same blog entry en diferente idiomas. Although i doubt many readers would support showing just the entries form a feed in the languages you understand.
-
[AsbjornUlsberg, RefactorOk] It is possible to have multipe xml:lang attributes in the feed. Just plunge it in wherever you want, but you can't have more than one xml:lang on each element. If that doesn't satisfy you, I can't see what will. Is there ever need for more than one language definiton on each element? If so, why?
See AuthorElement, LinkElement, IdElement, IssuedElement, ModifiedElement, ContentElement