It's clear now, the future of computing is XML, XSLT, and other XML applied technologies. The future of Internet is XHTML and CSS. We use Argentum MyFiles ($35) to browse, search, catalog and organize our MP3 music collection. With MyFiles' built-in XML exchange module, we export the entire file catalog into XML database, then we post-process this data and split it into a number of files. We use XSLT transformation to transform raw XML files into well-formed XHTML documents. They are then ready to upload to our ultra-fast Microsoft Windows 2008 web-server in Chicago, USA. Read the full story below...
- MyFiles A music organizer, and file and disk cataloger.
- XML An unified format for storing data of any kind, now and in the future.
- XSLT A powerful programming language to transform XML data.
- XHTML A major, new, structure markup language for the Web.
- CSS A primary presentation language for the Web.
The audio music collection is stored in a number of MP3 files on a high-capacity hard disk drive. There will be more information on how we encode audio data, from what sources, and what MP3 is all about, but currently we just dwell on the cataloging issue, that is how we organize this music collection and keep track of what we have. For that purpose we have a great tool, Argentum MyFiles, which is a high-end disk cataloging utility and file organizer that keeps all of our files (not only MP3 music) organized. MyFiles can be used as a file organizer, a disk cataloger, a music organizer, a digital audio MP3 collection, a family photo-album, a picture catalog, a document library and more. MyFiles™ keeps track of what you have on each CD, DVD, floppy, local or network volume. The information is organized in a portable, tree outline form, where you can keep detailed descriptions with any file or folder you may have in your collection. After building catalogs with images of your media, you can use a powerful search to locate items, create HTML, XML and CSV reports, browse and access your files directly from within MyFiles.
A disk cataloger or a file organizer is an application that records the directory structure, but not the contents, of a volume. The saved directory structure of a volume is called a disk catalog. Searching and browsing a disk catalog is much faster than searching or browsing an actual disk. More important, a disk cataloger can store disk catalogs for more than one volume. And, a volume does not need to be available on the desktop while you are browsing the catalog. This allows you to have a single disk catalog containing the library of all of your CD's, DVD's, removable media volumes, network locations and floppy disks. Using a disk cataloger you can, in one move, search all of your volumes, be they available on your desktop, in a box next to your computer, or at the office on the other side of town.
Here at Argentum we like XML (Extensible Markup/Modeling Language) a lot and really depend on it. We store most of our data in XML format. The whole Argentum web-site, MoodBook's web-site along with its music catalog portion, and a few internal databases are originally stored in XML. In some ways, XML is just another data format. However, XML has several advantages over other formats when storing information.
- XML allows developers to create their own labeled structures for storing information.
- XML parsing is well-defined and widely implemented, making it possible to retrieve information from XML documents in a variety of environments.
- XML is built on a Unicode foundation, making it easier to create internationalized documents.
- Applications can rely on XML parsers to do some structural validation, as well as data type checking (when schemas are used).
- XML formats are text-based, making them more readable, easier to document, and sometimes easier to debug.
- Tools are available for XML processing on different platforms, making it simpler to use XML instead of binary formats to exchange complex information streams.
- XML documents can use much of the infrastructure already built for HTML, including the HTTP protocol and some browsers.
The principal advantage of XML is that XML is considered to be an unified format for all data storage now and in the future. In this way, XML is just a building block for your data structures, a language to define how your data is stored. XML can be very beneficial for most of the applications but isn't appropriate for every situation. XML documents tend to be more verbose than the binary formats they replace. They take up more network bandwidth and storage space, or require more processor time for compression. XML parsing can be slower than parsing highly optimized binary formats and can require more memory. However, careful application design can avoid most of these problems.
Having all of your data stored in a structured XML format is only half of work to be done. In order to publish it publicly you have to add presentation to the existing content. We use XSLT (Extensible Stylesheet Language Transformations) transformation language in order to transform XML files into well-formed XHTML. XML is all about structure and information. XHTML is a special XML-based language with pre-defined structure, designed to share and publish documents on the Internet. Basically, XHTML 1.0 is an XML-compliant, optimized, simplified, and improved successor of HTML 4.0. XSLT is about data exchange. XSLT was proposed and later accepted as a standard for XML data transformation. From a programmer's point of view, XSLT is a programming language for processing XML data, that is, transforming XML documents. As such, it supports the following:
- A small set of flexible data types: boolean, number, string, node-set, and external objects.
- A full set of operations: <xsl:template>, <xsl:apply-templates>, <xsl:sort>, <xsl:output>, and so on.
- Programming flow-control: <xsl:if>, <xsl:for-each>, <xsl:choose>, and so on.
An XSLT style sheet is an XML document. This means that XSLT instructions are expressed as XML elements, and an XSLT style sheet can transform other XSLT style sheets, or even itself. An important feature of XSLT programming is that it's rule-based and declarative. In XSLT, rules are called template rules. A template rule is an instruction to transform a specified source element in a particular way. To transform a set of data, you must provide a complete set of rules. However, each rule is independent of every other. The order in which rules are declared (or executed) is not significant. This makes XSLT programming side-effect-free. Although you can introduce side-effects by calling extension functions from within XPath expressions, the native way of programming with XSLT is without any side-effects. In this way, programming with XSLT is significantly different from imperative or procedure-oriented programming.
XSLT extends the value of XML data. XSLT allows you not only to present XML data, but also to transform it into completely new data that is designed specifically for a particular user, media, or client. With XSLT, you can transform data so it can be exchanged between disparate business systems, map one XML-based representation into another, transform XML data into a variety of media, including HTML documents for the Web and PDF format for print, dynamically filter information to target a specific user or user group. For example, we could easily remove any part of information, presented in this music catalog, e. g. encoding quality or track length or both.
XHTML & CSS
To honor the power and elegance of XML, XHMTL is actually an XML language, it's from a family of XML languages. XHTML uses XML rules and notation (XSLT does as well). XHTML is a reformulation of HTML 4 in XML. XHTML is a family of current and future document types and modules that reproduce, subset, and extend HTML 4. XHTML family document types are XML based, and ultimately are designed to work in conjunction with XML-based user agents.
- XHTML documents are XML conforming. As such, they are readily viewed, edited, and validated with standard XML tools.
- XHTML documents can be written to operate as well or better than they did before in existing HTML 4 conforming user agents as well as in new, XHTML 1.0 conforming user agents. XHTML documents are backward compatible with older, non-XHTML compliant browsers.
- XHTML documents can utilize applications (scripts and applets) that rely upon either the HTML Document Object Model (DOM) or the XML DOM.
- As the XHTML family evolves, documents conforming to XHTML 1.0 will be more likely to interoperate within and among various XHTML environments.
HTML, as originally conceived, was to be a language for the exchange of scientific and other technical documents, suitable for use by non-document specialists. HTML addressed the problem of SGML complexity by specifying a small set of structural and semantic tags suitable for authoring relatively simple documents. In addition to simplifying the document structure, HTML added support for hypertext. Multimedia capabilities were added later. In a remarkably short space of time, HTML became wildly popular and rapidly outgrew its original purpose. Since HTML's inception, there has been rapid invention of new elements for use within HTML and for adapting HTML to vertical, highly specialized, markets. This plethora of new elements has led to interoperability problems for documents across different platforms.
The XHTML family is the next step in the evolution of the Internet. By migrating to XHTML today, content developers can enter the XML world with all of its attendant benefits, while still remaining confident in their content's backward and future compatibility. When properly used, W3C standards enhance accessibility and promise long-term durability for any document published on the Web. If you care to reach the largest audience for the longest time possible, you want to work with Web standards, and where document structure is concerned, XHTML is the way to go. The rules of XHTML take minutes to learn and the benefits of XHTML are vast. It is easy to author in XHTML and equally easy to convert HTML to XHTML by hand.
CSS (Cascading Style Sheets) is a simple mechanism for adding style (e. g. fonts, colors, spacing, dimensions) to XHTML documents. Regretfully, CSS is not XML-based, but it's still great! The fundamental feature (and principal advantage) of CSS is that CSS enables content writers to separate structure from presentation, content from style, bringing a number of additional benefits, including but not limited to:
- Site wide look and feel consistency. Separating structure (or content) from presentation increases Web design consistency. With CSS, presentation is defined using a layout-oriented CSS language, which can be applied to a set of XHTML documents, thus permitting a complete change of presentation for all the documents at once.
- Lower bandwidth usage. XHTML code is often much more compact (therefore easier to read and maintain) when used in conjunction with CSS. CSS makes it possible to transform table-based layouts into CSS-based layouts, which, according to various case studies and articles, can reduce page size by 25 to 50%.
- Better user experience. Faster content loading. Reduced page size leads to faster site loading, which translates into better user experience.
- Advanced graphic design. Providing authors with a rich set of CSS rendering effects increases the richness of the Web as a medium of expression. Designers have been longing for functionality commonly found in desktop publishing and slide-show applications. Some of the requested rendering effects conflict with device independence, but CSS 2 goes a long way toward granting designers their requests.
- Better search engine ranking. Search engine agents crawl the Web to index it. Separating presentation from content increases the information/markup ratio, making CSS-based documents more pertinent with regard to the search terms, which makes them rank higher in search results. Using CSS to render titles instead of graphics also helps in this regard.
- Future compatibility. A very significant portion of electronically-stored information is produced for the Web and written in HTML format. Using valid, standards-compliant markup, which CSS provides, ensures that data will be re-usable for a long time, as specifications on how to parse the standard formats are well documented and here to stay.
Here are a few downloads you may be interested in after reading the topics on this page. And in the end. We fully appreciate the power of XHTML and CSS and use it everywhere, on all of our sites, including this one. Consider this page our tribute to XML, XHTML and CSS. Argentum loves this triad!
- Argentum MyFiles 1.9 MB, a high-end disk cataloger and file organizer to organize all of your files and folders, including MP3 digital audio.
- Argentum Backup 1.2 MB, an award-winning backup utility for Windows. Extremely small. Extremely fast. Exceedingly intuitive and very easy to use. Cool!