<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/styles/XMLStylesDoc_xhtml11_en.xsl"?><!DOCTYPE document SYSTEM "/schemas/XMLStyles10.dtd">
<document xmlns="http://XMLStyles.com/namespaces/styles" xmlns:xst="http://XMLStyles.com/namespaces/styles" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:date="http://exslt.org/dates-and-times">
   <noxml>
      <p xmlns="http://www.w3.org/1999/xhtml"/>
      <!-- You are viewing the source.  The following message should be ignored if you did "View Source" in your browser. -->
      <p xmlns="http://www.w3.org/1999/xhtml">
ATTENTION: XML WEB PAGES NOT SUPPORTED
   If you see this message, your current browser does not support the
   1999 XSLT 1.0 (or later) standard for XML web pages such as this one.
   Please upgrade your browser to a newer version
   that supports 1999 or later standards such as:
      Mozilla Firefox version 1.0.2 or later (GetFirefox -&gt; http://www.GetFirefox.com/)
      Netscape version 8 or later
      Safari version 1.3 or later
      Opera version 9 or later
      Microsoft Internet Explorer (MSIE) version 5 or later
   For further assistance, contact the software vendor for your browser.
   To go to the X<!-- extended HTML -->HTML version of this page click the following link:
<a href="index.html">index.html</a>
      </p>
      <p xmlns="http://www.w3.org/1999/xhtml">&#160;</p>
   </noxml>
   <path>/internet/xml/</path>
   <site>How To Guides</site>
   <logo xlink:type="simple" xlink:href="/images/howtohome.jpg" media="screen" width="240" height="34">How To Guides</logo>
   <logo xlink:type="simple" xlink:href="/images/howtoguides.jpg" media="print" width="240" height="34">How To Guides</logo>
   <logo xlink:type="simple" xlink:href="/images/howtoguidesmobile.jpg" media="handheld" width="150" height="17">How To Guides</logo>
   <navigation where="sections">
      <label>How To Guides</label>
      <link xlink:type="simple" xlink:href="/business/index.xml">Business</link>
      <link xlink:type="simple" xlink:href="/computers/index.xml">Computers</link>
      <link xlink:type="simple" xlink:href="/computers/databases/index.xml">Databases</link>
      <link xlink:type="simple" xlink:href="/internet/index.xml">Internet</link>
      <link xlink:type="simple" xlink:href="/mobile/index.xml">Mobile</link>
      <link xlink:type="simple" xlink:href="/money/index.xml">Money</link>
      <link xlink:type="simple" xlink:href="/movies/index.xml">Movies</link>
      <link xlink:type="simple" xlink:href="/computers/os/index.xml">Operating Systems</link>
   </navigation>
   <navigation where="up">
      <link xlink:type="simple" xlink:href="../">Internet</link>
      <link xlink:type="simple" xlink:href="../web/">Web</link>
      <link xlink:type="simple" xlink:href="../webdesign.xml">Web Design</link>
      <link xlink:type="simple" xlink:href="../markuplanguages.xml">Markup Languages</link>
   </navigation>
   <navigation where="subsections">
      <label>Internet</label>
      <link xlink:type="simple" xlink:href="/internet/affiliates/">Affiliates</link>
      <link xlink:type="simple" xlink:href="/internet/domains/">Domain Names</link>
      <link xlink:type="simple" xlink:href="/internet/marketing/">Internet Marketing</link>
      <link xlink:type="simple" xlink:href="/internet/isps/">ISPs</link>
      <link xlink:type="simple" xlink:href="/internet/podcasts/">Podcasts</link>
      <link xlink:type="simple" xlink:href="/internet/tcpip/">TCP/IP</link>
      <link xlink:type="simple" xlink:href="/internet/web/">Web</link>
      <link xlink:type="simple" xlink:href="index.xml">XML</link>
   </navigation>
   <section id="body" type="body">
      <pages name="index">
         <title>How To Guides for XML</title>
         <navigation where="pages">
            <label>index</label>
            <link xlink:type="simple" xlink:href="index.xml">Summary</link>
            <link xlink:type="simple" xlink:href="introduction.xml">Intro</link>
            <link xlink:type="simple" xlink:href="templates.xml">XSL Templates</link>
         </navigation>
         <h1>"How To" Guides for XML</h1>
         <page id="N10099" name="introduction">
            <title>How To Look At XML</title>
            <label>Intro</label>
            <description>An introduction describing what XML is.</description>
            <navigation where="up">
               <link xlink:type="simple" xlink:href="index.xml">XML</link>
            </navigation>
            <subpage id="N100A7" name="intro">
               <h1>XML paradigms compared to programming paradigms</h1>
               <p>In the same way that there is more than one paradigm in
                  programming, there is more than one way to look at XML.
                  As for the former, there is procedural, Object-Oriented
                  Programming (<acronym term="Object Oriented Programming">OOP</acronym>)
                  and Aspect-Oriented Programming (<acronym term="Aspect Oriented Programming">AOP</acronym>).
                  In the same manner, there are a number of ways to look at XML:
               </p>
               <dl>
                  <di>
                     <dt>as simply a way to store and/or transmit data</dt>
                     <dd>XML can be viewed as yet another format for storing data items.
                        In some ways, this is equivalent to doing procedural
                        programming in an object-oriented programming language.
                        The advantage is that you can get the immediate job
                        done fairly well without having to shift your paradigm.
                        The disadvantage is that procedure code is typically not reusable.
                        So the next time a similar task needs to be accomplished, new
                        code must be developed.  This is called
                        <acronym term="Reinventing The Wheel">Reinventing The Wheel (RTW)</acronym>.
                     </dd>
                     <dd>Likewise, simply looking at XML as a way to store and/or transmit
                        data can make it easier to implement a specific application.
                        An example of this is
                        <acronym term="Really Simple Syndication">RSS</acronym>
                        0.9x / 2.0, which makes good use of XML as a way to transmit data items to accomplish the job of delivering syndicated web feeds.
                        The limitations of this might not be apparent until you start encountering
                        problems with the schema or, such as in the case of RSS, the lack of one.
                        Because of this, RSS feeds cannot be validated with standard XML validators;
                        it becomes necessary to "reinvent the wheel" with validation specific to the RSS format.
                        The lack of a determistic schema is one of the
                        <link xlink:type="simple" xlink:href="http://www.ContentAggregator.com/feeds/openfeed#issues">limitations of RSS</link>
                        and is not even resolved with the
                        <link xlink:type="simple" xlink:href="http://www.ContentAggregator.com/feeds/openfeed#issues">Atom Syndication Format</link>,
                        although <link xlink:type="simple" xlink:href="http://www.ContentAggregator.com/feeds/openfeed2.">Open Feed Format</link>
                        does provide one and can be easily transformed into either RSS or Atom Syndication Formats.
                     </dd>
                  </di>
                  <di>
                     <dt>as a way to store and/or aggregate content</dt>
                     <dd>It takes a serious paradigm shift to start looking at XML as a
                        way to store content, rather than just collections of data items.
                        This is equivalent to the shift in paradigms from looking at an
                        object-oriented programming language as a set of procedural
                        instructions to a way to manipulate more robust objects.
                     </dd>
                     <dd>This is the biggest jump that is needed in making good use of XML,
                        just like understanding objects is the biggest jump in understanding OOP.
                        When you see code written in an OOP language that is consistently
                        passing a particular object as a parameter to almost every method,
                        you recognize that the author of that code has not yet made the leap.
                        Likewise, when you look at the design of the RSS feed format,
                        you can see that the author(s) had not yet made the leap to the next level,
                        (or possibly that they did not want to rely on users having made the leap).
                     </dd>
                     <dd>This does not mean that you have to abandon <acronym term="Hypertext Markup Language">HTML</acronym> development.
                        On second thought, I take that back - actually, yes it does.
                        It means you have to abandon 1997 <acronym term="Hypertext Markup Language">HTML</acronym> 4.x development and
                        IE 4.x compatibility in favor of <acronym term="Extensible Hypertext Markup Language">XHTML</acronym> and more recent browsers.
                        <acronym term="Extensible Hypertext Markup Language">XHTML</acronym> web pages are simply a particular type of XML documents.
                        Therefore, you should start to think of <acronym term="Extensible Hypertext Markup Language">XHTML</acronym> not just as a markup language
                        for creating web pages, but as a means for delivering content.
                        Once you've made this leap to the new paradigm, you can do things like:
                        <ul>
                           <li>separate the content of your web site from the presentation
                           </li>
                           <li>make better use of content by tailoring the presentation
                              of the content for specific delivery channels; an example
                              would be for users of handheld devices such as cell phones and
                              <acronym term="Personal Digital Assistants">PDAs</acronym>.
                              See <link xlink:type="simple" xlink:href="http://www.Sample.mobi/">Sample .mobi</link> for a good example of this.
                           </li>
                           <li>move common elements, those things that provide the
                             <acronym term="Look And Feel">look and feel (LaF)</acronym>
                             of a web site, into templates, which, because they can be cached by most
                             browsers, reduces bandwidth requirements and improves page load times
                          </li>
                        </ul>
                     </dd>
                  </di>
                  <di>
                     <dt>as a way to integrate content</dt>
                     <dd>Aspect-Oriented Programming takes <acronym term="Object-Oriented Programming">OOP</acronym>
                        to the next level by looking at objects in multiple dimensions,
                        rather than just a single dimension.
                        The analogy with the three-dimensional space, of which we are
                        quite familiar, would be that OOP looks at objects in the vertical
                        (up/down, class/subclass) direction, and AOP adds the horizontal directions.
                        The view of objects in the horizontal directions are called cross-cutting concerns.
                     </dd>
                     <dd>Likewise, if you've already made the leap to looking
                        at <acronym term="Extensible Markup Language">XML</acronym>
                        as a way to store and/or aggregate content,
                        it's relatively easy to take this to the next level and
                        consider XML as a means for integration of content.
                        Content and navigation do not need to be limited to simply
                        moving through web pages in sequence; it can simultaneously
                        be gathered from multiple directions and integrated.
                        This was the promise of the <link xlink:type="simple" xlink:href="http://www.SemanticWeb.info/">Semantic Web</link>,
                        but has been painfully slow in becoming reality, presumably
                        because most content providers have not yet even made the
                        first leap in making good use of XML in their content.
                     </dd>
                  </di>
               </dl>
            </subpage>
            <updated local="2007-03-25">Sunday March 25, 2007</updated>
         </page>
      </pages>
   </section>
   <copyright>Copyright © 2007 How To Guides .com. Alteration of content, including addition of any function such as hypertext links or pop-up advertising, or interference with the hypertext links or other functions of this site is expressly prohibited.</copyright>
   <disclaimer>All information, links, forms, applications and other items on this site or obtained from it are provided <b>AS IS</b>, WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</disclaimer>
   <ids urchin="UA-779578-2"/>
</document>

