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
