xoxo-ja: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(sync: english: 17:09, 25 Nov 2006)
(sync: english: 2008-12-16T17:03:01 and translated from "Abstract" to "Simple XOXO Fragment")
Line 1: Line 1:
<!-- english: 17:09, 25 Nov 2006 -->
<entry-title> XOXO 1.0: Extensible Open XHTML Outlines </entry-title>
<h1> XOXO 1.0: Extensible Open XHTML Outlines </h1>
<!-- english: 2008-12-16T17:03:01 -->


XOXOとは、標準的なXHTMLで書かれたシンプルでオープンなアウトラインフォーマットで、(X)HTML, Atom, RSS, そしてarbitrary XMLに組み込むのに適しています. XOXOは [[microformats|microformat]] オープンスタンダードの一つです.  
XOXOとは、標準的なXHTMLで書かれたシンプルでオープンなアウトラインフォーマットで、(X)HTML, Atom, RSS, そしてarbitrary XMLに組み込むのに適しています. XOXOは [[microformats|microformat]] オープンスタンダードの一つです.


__TOC__
__TOC__
Line 9: Line 9:


=== 編者 ===
=== 編者 ===
[http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]
[http://tantek.com/ Tantek Celik]([http://technorati.com Technorati, Inc])


=== 作者 ===
=== 作者 ===
* [http://epeus.blogspot.com/ Kevin Marks], [http://technorati.com Technorati, Inc]
* [http://epeus.blogspot.com/ Kevin Marks]([http://technorati.com Technorati, Inc])
* [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc] (formerly of [http://microsoft.com/ Microsoft Corporation])
* [http://tantek.com/ Tantek Celik]([http://technorati.com Technorati, Inc], formerly of [http://microsoft.com/ Microsoft Corporation])
* [http://diveintomark.org/ Mark Pilgrim], [http://ibm.com IBM]
* [http://diveintomark.org/ Mark Pilgrim]([http://ibm.com IBM])
* [http://www.blogologue.com/ Morten W. Petersen]
* [http://www.blogologue.com/ Morten W. Petersen]


=== 著作権 ===
=== 著作権 ===
{{MicroFormatCopyrightStatement2003}}
{{MicroFormatCopyrightStatement2003}}
* [[User:Tantek|Tantek]]: I release all my contributions to this specification into the public domain and I encourage the other authors to do so as well.
** When all authors/editors have done so, we can remove the MicroFormatCopyrightStatement template reference and replace it with the MicroFormatPublicDomainContributionStatement.


=== 特許 ===
=== 特許 ===
Line 29: Line 31:
XOXOはeXtensible Open XHTML Outlinesの略称であり、「エックス オー エックス オー」、「ジョージョー」または「ショーショー」などと発音されています。
XOXOはeXtensible Open XHTML Outlinesの略称であり、「エックス オー エックス オー」、「ジョージョー」または「ショーショー」などと発音されています。


== Abstract ==
== 要約 ==
XOXO is one of several [[microformats]].  This specification defines a new XHTML document type that is based upon the module framework and modules defined in Modularization of XHTML ([http://www.w3.org/TR/xhtml-modularization XHTMLMOD]). The purpose of the XOXO document type is to serve as the basis for XHTML friendly outlines for processing by XML engines and for easy interactive rendering by browsers.
[[XOXO]] は[[microformats-ja|マイクロフォーマット]]の一つです。この仕様では、モジュールの骨格と、「XHTML のモジュール化」([http://www.w3.org/TR/xhtml-modularization XHTMLMOD])で定義されたモジュールに基づいて、新しい XHTML ドキュメントタイプを定義します。 XHTML として使いやすく、XML エンジンが処理してブラウザで簡単にインタラクティブな表示ができるような骨組みの土台となるのが XOXO の目的です。


== The XOXO Document Type ==
== XOXO ドキュメントタイプ ==
The XOXO document type is made up of the following XHTML modules. The elements, attributes, and minimal content models associated with these modules are defined in "Modularization of XHTML" ([http://www.w3.org/TR/xhtml-modularization XHTMLMOD]). The elements are listed here for information purposes, but the definitions in "Modularization of XHTML" should be considered definitive. In the on-line version of this document, the module names in the list below link into the definitions of the modules within the current version of "Modularization of XHTML".
XOXO ドキュメントタイプは次の XHTML モジュールで構成されます。このモジュールにある要素、属性、最小内容モデルは「XHTML のモジュール化」([http://www.w3.org/TR/xhtml-modularization XHTMLMOD])で定義されています。要素は情報を提示するためにここで一覧にしますが、最終的には「XHTML のモジュール化」での定義を参照するべきです。このドキュメントのオンライン版では、下の一覧のモジュール名を、「XHTML のモジュール化」現行バージョン内のモジュール定義へのリンクとしています。


[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_structuremodule Structure Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_structuremodule 構造モジュール(Structure Module)]
   body, head, html, title
   body, head, html, title
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_hypertextmodule Hypertext Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_hypertextmodule ハイパーテキストモジュール(Hypertext Module)]
   a
   a
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_listmodule List Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_listmodule リストモジュール(List Module)]
   dl, dt, dd, ol, ul, li
   dl, dt, dd, ol, ul, li
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_metamodule Metainformation Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_metamodule メタ情報モジュール(Metainformation Module)]
   meta
   meta
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_stylemodule Stylesheet Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_stylemodule スタイルシートモジュール(Style Sheet Module)]
   style element
   style 要素
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_styleattributemodule Style Attribute Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_styleattributemodule スタイル属性モジュールモジュール(Style Attribute Module)]
   style attribute
   style 属性
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_linkmodule Link Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_linkmodule リンクモジュール(Link Module)]
   link
   link
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_legacymodule Legacy Module]
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_legacymodule レガシーモジュール(Legacy Module)]
   Attribute compact on ol and ul
   ol ul での compact 属性


=== The XOXO Profile ===
=== XOXO プロファイル ===


See [[xoxo-profile]] for the [http://gmpg.org/xmdp XMDP] profile of XOXO which defines the XOXO values for the class attribute.
XOXO の class 属性用の値を定義した XOXO の [http://gmpg.org/xmdp XMDP] プロファイルは、[[xoxo-profile]] を参照してください。


== Simple XOXO Fragment ==
== 簡単な XOXO の断片 ==


=== Markup ===
=== マークアップ ===


<pre><nowiki><ol class='xoxo'>
<pre><nowiki><ol class='xoxo'>
   <li>Subject 1
   <li>項目 1
     <ol>
     <ol>
         <li>subpoint a</li>
         <li>下位項目 a</li>
         <li>subpoint b</li>
         <li>下位項目 b</li>
     </ol>
     </ol>
   </li>
   </li>
   <li>Subject 2
   <li>項目 2
     <ol compact="compact">
     <ol compact="compact">
         <li>subpoint c</li>
         <li>下位項目 c</li>
         <li>subpoint d</li>
         <li>下位項目 d</li>
     </ol>
     </ol>
   </li>
   </li>
   <li>Subject 3
   <li>項目 3
     <ol>
     <ol>
         <li>subpoint e</li>
         <li>下位項目 e</li>
     </ol>
     </ol>
   </li>
   </li>
Line 81: Line 83:
</nowiki></pre>
</nowiki></pre>


=== Sample Rendering ===
=== 表示例 ===
<pre><nowiki>
<pre><nowiki>
   1. Subject 1
   1. 項目 1
       a. subpoint a
       a. 下位項目 a
       b. subpoint b
       b. 下位項目 b
   2. Subject 2
   2. 項目 2
   3. Subject 3
   3. 項目 3
       a. subpoint e
       a. 下位項目 e
</nowiki></pre>
</nowiki></pre>
=== Usage of 'compact' attribute ===
=== 'compact' 属性の使用法 ===


Note the use of the 'compact' attribute to indicate that the subpoints of the headline "Subject 2" are not in an expanded state.  The absence of the 'compact' attribute elsewhere indicates that the other headlines are in an expanded state.
「項目 2」という見出しの下位項目が開いた状態ではない(訳注:折りたたまれた状態である)ことを示すために、'compact' 属性を使ったことに注意してください。そこ以外に 'compact' 属性は無いので、他の見出しは開いた状態です。


=== Possible Default Style Rules for Sample Rendering ===
=== 表示例のようになるデフォルトスタイルルールの一例 ===


<pre><nowiki>
<pre><nowiki>
Line 113: Line 115:
* [http://homepage.mac.com/ctholland/thelab/outlines/ Chris Holland Outline Helper]: tweaked one of above samples, yanked CSS for simplicity, added reference to [http://homepage.mac.com/ctholland/thelab/outlines/outlines.css outlines.css] and [http://homepage.mac.com/ctholland/thelab/outlines/outlines.js outlines.js], pasted a few different combinations of ul/ol/li with the compact attribute.
* [http://homepage.mac.com/ctholland/thelab/outlines/ Chris Holland Outline Helper]: tweaked one of above samples, yanked CSS for simplicity, added reference to [http://homepage.mac.com/ctholland/thelab/outlines/outlines.css outlines.css] and [http://homepage.mac.com/ctholland/thelab/outlines/outlines.js outlines.js], pasted a few different combinations of ul/ol/li with the compact attribute.
** in trying to comply with semantic principles the "compact" attribute to ol and ul elements is what drives the display state. Via scripting, i'm setting classes on containing li element for added styling flexibility, though CSS Gurus might be able to replace "li.expanded" in outlines.css with some other CSS selector that says "select an li node that contains an ol node with a 'compact' attribute set".
** in trying to comply with semantic principles the "compact" attribute to ol and ul elements is what drives the display state. Via scripting, i'm setting classes on containing li element for added styling flexibility, though CSS Gurus might be able to replace "li.expanded" in outlines.css with some other CSS selector that says "select an li node that contains an ol node with a 'compact' attribute set".
*** The CSS selector for "an li node that contains an ol node with a 'compact' attribute set" would be 'li ol[compact="compact"]'.


== Properties of Outline Items ==
== Properties of Outline Items ==
Line 175: Line 178:
         title="title of item 1"
         title="title of item 1"
         type="text/xml"
         type="text/xml"
         rel="help">item 1</a>  
         rel="help">item 1</a>
<!-- note how the "text" property is simply the contents of the <a> element -->
<!-- note how the "text" property is simply the contents of the <a> element -->
       <dl>
       <dl>
Line 210: Line 213:
</body>
</body>
</html>
</html>
</nowiki></pre>
==== Content-Type ====
Valid XHTML XOXO SHOULD be served with this Content-Type header for maximum browser compatibility.
<pre><nowiki>
Content-Type: text/html; charset=utf-8
</nowiki></pre>
It MUST be served with one of these Content-Type headers:
<pre><nowiki>
Content-Type: text/html; charset=utf-8
Content-Type: application/xhtml+xml
</nowiki></pre>
</nowiki></pre>


Line 239: Line 227:
</nowiki></pre>
</nowiki></pre>


==== Content-Type ====
=== Content-Type ===


Simple well-formed XML XOXO SHOULD be served with this Content-Type header:
Valid or well-formed XHTML XOXO SHOULD be served with this Content-Type header for maximum browser compatibility.
<pre><nowiki>
<pre><nowiki>
Content-Type: text/xml; charset=utf-8
Content-Type: text/html; charset=utf-8
</nowiki></pre>
</nowiki></pre>


Line 249: Line 237:


<pre><nowiki>
<pre><nowiki>
Content-Type: text/xml; charset=utf-8
Content-Type: text/html; charset=utf-8
Content-Type: application/xhtml+xml
Content-Type: application/xml
Content-Type: application/xml
Content-Type: application/xml; charset=utf-8
</nowiki></pre>
</nowiki></pre>


Line 257: Line 245:
This section is '''informative'''.
This section is '''informative'''.


Too numerous to document thoroughly. Nearly every blogroll on the Web can be parsed as XOXO, since they are typically an unordered list of list items of hyperlinks, which is within the XOXO profile.
There are many wild examples. Nearly every blogroll on the Web can be parsed as XOXO, since they are typically an unordered list of list items of hyperlinks, which is within the XOXO profile. List examples here, when the list becomes too long we can move to a dedicated page.
 
* [http://api.talis.com/bf/stores/ukbib/services/facet?query=feynman&fields=title%2Csubject&top=10&output=html HTML output from a faceting service for book data]


== Implementations ==
== Implementations ==
This section is '''informative'''.
This section is '''informative'''.


* CVarious [[s5-tools|S5 tools]]
* [http://chneukirchen.org/blog/ Christian Neukirchen] has [http://chneukirchen.org/blog/archive/2006/01/xoxo-rb-0-1-released.html written a xoxo.rb, a XOXO parser and generator for Ruby]
* [http://chneukirchen.org/blog/ Christian Neukirchen] has [http://chneukirchen.org/blog/archive/2006/01/xoxo-rb-0-1-released.html written a xoxo.rb, a XOXO parser and generator for Ruby]
* [http://odeo.com Odeo] publishes users' subscription lists in XOXO. See Ryan King's list [http://odeo.com/profile/RyanKing/xoxo here].
* [http://odeo.com Odeo] publishes users' subscription lists in XOXO. See Ryan King's list [http://odeo.com/profile/RyanKing/xoxo here].
Line 301: Line 292:
* [http://dannyayers.com/archives/001961.html XHTML Outlines] - DannyAyers independently came up with idea in 2003 October (just a month or two before Kevin and Tantek independently came up with XOXO) to use a simple profile of XHTML to semantically represent outlines using existing building blocks from XHTML.
* [http://dannyayers.com/archives/001961.html XHTML Outlines] - DannyAyers independently came up with idea in 2003 October (just a month or two before Kevin and Tantek independently came up with XOXO) to use a simple profile of XHTML to semantically represent outlines using existing building blocks from XHTML.
* [http://semtext.org/2004-02/ XOW] - making them editable, producing RDF and bookmark lists from them (DannyAyers)
* [http://semtext.org/2004-02/ XOW] - making them editable, producing RDF and bookmark lists from them (DannyAyers)
* [http://en.wikipedia.org/wiki/XBEL XBEL, or the XML Bookmark Exchange Language], an open XML standard for sharing Internet URIs, also known as bookmarks (or favorites in Internet Explorer).
* [http://en.wikipedia.org/wiki/OPML OPML (Outline Processor Markup Language)], an XML format for outlines.


=== Related Reading ===
=== Related Reading ===
* [http://patricklogan.blogspot.com/2005/08/lists-really-can-we-expect-better.html Patrick Logan on why OPML and a Microsoft Lists extension are both unnecessary].
* [http://patricklogan.blogspot.com/2005/08/lists-really-can-we-expect-better.html Patrick Logan on why OPML and a Microsoft Lists extension are both unnecessary].
* [http://raybenchen.blogspot.com/2005/11/is-crappy-format-worth-saving.html Dr. Tao Chen on why it is better to use XOXO than OPML going forward]


=== Unrelated Reading ===
=== Unrelated Reading ===
Line 324: Line 316:
=== Issues ===
=== Issues ===
* Please add any issues with the specification to the separate [[xoxo-issues]] document.
* Please add any issues with the specification to the separate [[xoxo-issues]] document.
[[Category:XOXO]]

Revision as of 18:27, 16 December 2008

<entry-title> XOXO 1.0: Extensible Open XHTML Outlines </entry-title>

XOXOとは、標準的なXHTMLで書かれたシンプルでオープンなアウトラインフォーマットで、(X)HTML, Atom, RSS, そしてarbitrary XMLに組み込むのに適しています. XOXOは microformat オープンスタンダードの一つです.

仕様ドラフト 2004-10-01

編者

Tantek Celik(Technorati, Inc)

作者

著作権

This specification is (C) 2003-2024 by the authors. However, the authors intend to submit (or already have submitted, see details in the spec) this specification to a standards body with a liberal copyright/licensing policy such as the GMPG, IETF, and/or W3C. Anyone wishing to contribute should read their copyright principles, policies and licenses (e.g. the GMPG Principles) and agree to them, including licensing of all contributions under all required licenses (e.g. CC-by 1.0 and later), before contributing.

  • Tantek: I release all my contributions to this specification into the public domain and I encourage the other authors to do so as well.
    • When all authors/editors have done so, we can remove the MicroFormatCopyrightStatement template reference and replace it with the MicroFormatPublicDomainContributionStatement.

特許

この仕様はロイヤリティーフリーの特許方針に帰属するものです。特許方針に関してはW3C Patent PolicyRFC3667RFC3668をご覧下さい。

あらすじ

Attention.xmlについて話し合っていたとき、XHTMLで作るアウトラインおよびblogrollフォーマットの可能性をTantekが指摘しました。XHTMLで記述することにより、ブラウザで表示することも出来れば厳密なXML処理系でパースすることも可能です。このページはそのフォーマットについて考えるための場所として作られました。

名称

XOXOはeXtensible Open XHTML Outlinesの略称であり、「エックス オー エックス オー」、「ジョージョー」または「ショーショー」などと発音されています。

要約

XOXOマイクロフォーマットの一つです。この仕様では、モジュールの骨格と、「XHTML のモジュール化」(XHTMLMOD)で定義されたモジュールに基づいて、新しい XHTML ドキュメントタイプを定義します。 XHTML として使いやすく、XML エンジンが処理してブラウザで簡単にインタラクティブな表示ができるような骨組みの土台となるのが XOXO の目的です。

XOXO ドキュメントタイプ

XOXO ドキュメントタイプは次の XHTML モジュールで構成されます。このモジュールにある要素、属性、最小内容モデルは「XHTML のモジュール化」(XHTMLMOD)で定義されています。要素は情報を提示するためにここで一覧にしますが、最終的には「XHTML のモジュール化」での定義を参照するべきです。このドキュメントのオンライン版では、下の一覧のモジュール名を、「XHTML のモジュール化」現行バージョン内のモジュール定義へのリンクとしています。

構造モジュール(Structure Module)

 body, head, html, title

ハイパーテキストモジュール(Hypertext Module)

 a

リストモジュール(List Module)

 dl, dt, dd, ol, ul, li

メタ情報モジュール(Metainformation Module)

 meta

スタイルシートモジュール(Style Sheet Module)

 style 要素

スタイル属性モジュールモジュール(Style Attribute Module)

 style 属性

リンクモジュール(Link Module)

 link

レガシーモジュール(Legacy Module)

 ol と ul での compact 属性

XOXO プロファイル

XOXO の class 属性用の値を定義した XOXO の XMDP プロファイルは、xoxo-profile を参照してください。

簡単な XOXO の断片

マークアップ

<ol class='xoxo'>
  <li>項目 1
    <ol>
        <li>下位項目 a</li>
        <li>下位項目 b</li>
    </ol>
  </li>
  <li>項目 2
    <ol compact="compact">
        <li>下位項目 c</li>
        <li>下位項目 d</li>
    </ol>
  </li>
  <li>項目 3
    <ol>
        <li>下位項目 e</li>
    </ol>
  </li>
</ol>

表示例

   1. 項目 1
      a. 下位項目 a
      b. 下位項目 b
   2. 項目 2
   3. 項目 3
      a. 下位項目 e

'compact' 属性の使用法

「項目 2」という見出しの下位項目が開いた状態ではない(訳注:折りたたまれた状態である)ことを示すために、'compact' 属性を使ったことに注意してください。そこ以外に 'compact' 属性は無いので、他の見出しは開いた状態です。

表示例のようになるデフォルトスタイルルールの一例

ol.xoxo { list-style:decimal; }
ol.xoxo ol { list-style:lower-latin; }
ol[compact="compact"] { display:none; }


More Simple Examples

MarkP has a set of examples that demonstrates both the simplicity of the markup and the presentational richness that is possible:

Properties of Outline Items

Outlines typically consist of a hierarchy of points and subpoints. Each of those points (outline items) itself may have some properties (AKA attributes or metadata) that need to be represented. Perhaps the most common additional property on outline items in practice is the URL as demonstrated in Mark Pilgrim's examples above. Even the text label/title of an outline item could be considered a common property. A few such common properties:

  • text
  • description
  • url (often called xmlurl or htmlurl; sometimes called permalink)
  • title
  • type (hint of the MIME type of the resource indicated by the URL)

In general, properties on an outline item <li> are represented by a nested definition list <dl>. Strictly speaking, it is the first <dl> inside the <li> and before any following <ol>, <ul>, or <li>, e.g. here is an item "item 1" with a description property (the subpoints are there purely as a point of reference to an earlier example).

<ol class='xoxo'>
  <li>item 1
    <dl>
      <dt>description</dt>
        <dd>This item represents the main point we're trying to make.</dd>
    </dl>
    <ol>
      <li>subpoint a</li>
      <li>subpoint b</li>
    </ol>
  </li>

Special Properties

There are a handful of special properties which we are able to represent more directly and conveniently with the semantic XHTML building blocks that we have included, instead of terms in a definition list. Mostly taken from the above list of common properties, these are:

  • text, url, title, type, and rel (short for relationship)

If we were to represent them simply as definition terms (including the "description" property from the previous example), they might look something like this:

Example for the sake of discussion only / not a canonical XOXO example:

<ol class='xoxo'>
  <li>
    <dl>
      <dt>text</dt>
        <dd>item 1</dd>
      <dt>description</dt>
        <dd> This item represents the main point we're trying to make.</dd>
      <dt>url</dt>
        <dd>http://example.com/more.xoxo</dd>
      <dt>title</dt>
        <dd>title of item 1</dd>
      <dt>type</dt>
        <dd>text/xml</dd>
      <dt>rel</dt>
        <dd>help</dd>
    </dl>
  </li>

However, by taking advantage of the semantic <a href> element, we are able to dramatically simplify the common cases that utilize these properties. From a parser's perspective, this applies to the first <a href> element directly inside the <li>.

Actual XOXO Example:

<ol class='xoxo'>
  <li><a href="http://example.com/more.xoxo"
         title="title of item 1"
         type="text/xml"
         rel="help">item 1</a>
<!-- note how the "text" property is simply the contents of the <a> element -->
      <dl>
        <dt>description</dt>
          <dd>This item represents the main point we're trying to make.</dd>
      </dl>
  </li>

Any other properties are simply added to the definition list in the same way as the "description" property.

Publishing XOXO

XOXO may be published in two forms, valid XHTML, and simple well-formed XML.

Valid XHTML XOXO

A valid XHTML XOXO page is a complete XHTML document.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>XOXO page</title>
</head>
<body>
<ol class="xoxo">
 <li><a href="URL-one">TEXT-one</a></li>
 <li><a href="URL-two">TEXT-two</a></li>
 ...
</ol>
</body>
</html>

Simple well-formed XML XOXO

The root element of a simple well-formed XML XOXO page is either an ol or ul with class name of "xoxo". This variant is ideal for syndication and transclusion into (X)HTML pages with AHAH.

<ol class="xoxo">
 <li><a href="URL-one">TEXT-one</a></li>
 <li><a href="URL-two">TEXT-two</a></li>
 ...
</ol>

Content-Type

Valid or well-formed XHTML XOXO SHOULD be served with this Content-Type header for maximum browser compatibility.

Content-Type: text/html; charset=utf-8

It MUST be served with one of these Content-Type headers:

Content-Type: text/html; charset=utf-8
Content-Type: application/xhtml+xml
Content-Type: application/xml

Examples in the Wild

This section is informative.

There are many wild examples. Nearly every blogroll on the Web can be parsed as XOXO, since they are typically an unordered list of list items of hyperlinks, which is within the XOXO profile. List examples here, when the list becomes too long we can move to a dedicated page.

Implementations

This section is informative.

Sample Code

  • See the xoxo-sample-code page for open source sample code to read and write XOXO files.
  • See also the xoxo-compact-sample page with source for CSS and JS that alters the look and feel of some very plain XOXO to have twiddlable triangles for nested lists that respect the compact attribute as well.

XOXO Schemas

This section is informative.

Note: these may be out of date and require updating to reflect the use of <dl> for annotating XOXO items with arbitrary properties.


References

Normative References

Informative References

This section is informative.

Similar Work

  • XHTML Outlines - DannyAyers independently came up with idea in 2003 October (just a month or two before Kevin and Tantek independently came up with XOXO) to use a simple profile of XHTML to semantically represent outlines using existing building blocks from XHTML.
  • XOW - making them editable, producing RDF and bookmark lists from them (DannyAyers)
  • XBEL, or the XML Bookmark Exchange Language, an open XML standard for sharing Internet URIs, also known as bookmarks (or favorites in Internet Explorer).
  • OPML (Outline Processor Markup Language), an XML format for outlines.

Related Reading

Unrelated Reading

Promotional Materials / Schwag

Discussions

This specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. There is a separate document where we are keeping our brainstorms and other explorations relating to XOXO:

Q&A

  • If you have any questions about XOXO, check the xoxo-faq, and if you don't find answers, add your questions!

Issues

  • Please add any issues with the specification to the separate xoxo-issues document.