[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

XML.com ComicsML A Simple Markup Language for Comics [Apr. 18, 2001]



 
 http://www.xml.com/pub/a/2001/04/18/comicsml.html
Title: XML.com: ComicsML: A Simple Markup Language for Comics [Apr. 18, 2001]
XML.com

XML.comO'Reilly Networkoreilly.comONJava.com
  Home | Resources | Buyer's Guide | FAQs | Free Newsletter     
  Resource Centers
Business
Graphics
Metadata
Mobile
Programming
Protocols
Schemas
Style
Web

   Essentials
Annotated XML
What is XML?
What is XSLT?
What is XLink?
What is XML Schema?
What is RDF?

  Find
Search
Article Archive
FAQs

Add XML to your Website

  Columns
XML-Deviant
Style Matters
XML Q&A
Transforming XML
Perl and XML

  Guides
XML Resources
Buyer's Guide
Events Calendar
Standards List
Submissions List

  Toolbox

Syntax Checker
XML Testbed

Seybold Publications

This site is on the O'Reilly Network


Format for printing
ComicsML: A Simple Markup Language for Comics

ComicsML: A Simple Markup Language for Comics

by Jason McIntosh
April 18, 2001

Introduction

Table of Contents

• Colliding XML and Comics
• The ComicsML Language
• Examples
• No Layout Here
• Reasons to use ComicsML
• Searchable Archives
• Conclusion
• References

I like comics. I like the Web. I like comics on the Web. But I could like them a lot more, especially if more of them would realize they're not on paper, taking advantage of their electronic format and globally-linked positions. So I propose a simple XML-based markup language which, I believe, could help digital comics assert their value as online resources and as art forms.

Colliding XML and Comics

Not too long ago, I started a job that required me to learn XML, the "Tupperware of the Internet", as a coworker calls it . People have created XML-based languages for everything from technical documentation to mathematical notation to spelunking.

At about the same time, I read Scott McCloud's Reinventing Comics, which is basically a call to arms to revolutionize comics by capitalizing on the largely untapped power that the Internet can offer this art form. A long-time comics fan, occasional comics creator, and student of Marshall McLuhan, I found myself wholly taken in by McCloud's arguments that the many comics now available on the Web represent a good first step, but few if any of them manage to take advantage of their new location, being presented as if they were still on paper. What we need now, McCloud argues, is new ideas for presenting comics digitally, which will inevitably emerge from many directions; but we'll also need new technologies to make digital delivery easier.

So I thought I would try to combine XML with online comics to see what would happen. I began to toy with the notion before I could think of good reasons why anyone would want to use such a thing, but, thankfully, I eventually came up with some of those, too, and I'll get to them after I describe how this thing works.

The ComicsML Language

Like any other XML language, the kernel of ComicsML is its DTD, which I've tried to keep relatively simple. Experienced DTD users may note its similarity to RSS, and there's good reason for that, which I'll explain below. Much of the rest is inspired by John Bosak's play.dtd, which he wrote so he could mark up the complete works of Shakespeare.

ComicML's atomic element is the panel, which is inspired by the McCloud/Eisner reading of comics as being an art form based around the magic that occurs when images appear in a juxtaposed sequence. Comics artists most often use individual panels as their images, and so that's the word I picked for my core element. These panel elements hold all the information about a comic's words and pictures, and panels are bundled together into elements called strips, which in turn can live in the DTD's root element, comic.

Comment on this article Interested in finding out more about ComicsML? Got any suggestions for improvements, or software? Share your thoughts with the author and other readers.
Post your comments

The use of multiple levels was also inspired by RSS. The comic element contains various bits of static metadata about the comic in question, including name, a list of its artists, or a clever tagline. Each strip represents a separate instance of that comic, the meat of which is held within panel. Pretty simple.

Each panel may hold elements that describe what's going on, with special attention given to the characters' words and actions. I included rudimentary (and optional) text markup so one could precisely markup the shape of the text, and I treated word balloons similarly. It's fine to use the default speech element for everything, but you can stick attributes in to follow along with the balloons' various shapes. Please see the DTD for a complete listing of all the different flavors of speech, thought, and narration I've included. I can't account for everything a comics artist can pull off, of course, but I did try to cover the major, conventional visual idioms that have developed in Western comics over the last century.

Pages: 1, 2, 3

Next Pagearrow




Contact Us | Our Mission | Privacy Policy | Advertise With Us | Site Help
Copyright © 2001 O'Reilly & Associates, Inc.