XML/object libraries are deprecated

15 07 2004

If you take any one of the many RSS libraries, including my own RSS.NET, ATOM libraries, or even OPML libraries, you find mostly the same functionality. Each read and write to a specific XML format. Some take advantage of the XML libraries provided by the environment, and some even read and write through streams. But they all solve the same problem - reading and writing objects or structures to and from an XML file, abstracting away XML from the client.

From my experience with RSS.NET, I believe that this code is useless. These formats will eventually evolve and new formats will arise. These libraries should evolve to solve a different problem: generating libraries that read and write specific XML formats.

Armed with a XML schema and an object mapping XML file, this new type of library should be able to generate libraries themselves whose purpose is to read and write to a specific XML file format. After this assembly is produced, developers can use this “strongly typed” object and its formatReader and formatWriter objects to read and write documents. Since this library would use code generation, developers would code this library against the XML schema standard, resulting in generic code that could be applied to any XML format.

Reusable object library generation

The result could be RSS, ATOM, and OPML objects who can read and write their respective formats a piece at a time (by using a stream) or, all at once. They would be schema compliant, optimized for each specific version, and most importantly, extremely easy to use by the end developer.



This weblog is preliminary and is subject to change.

9 07 2004

The services that George provides to you are subject to the following Terms of Use (TOU). George reserves the right to update the TOU at any time without notice to you. The most current version of the TOU can be reviewed here.

Through his network of websites, George provides you with access to a variety of resources, including source code, download areas, communication forms, and product information (collectively “Content”). This Content, including any updates, enhancements, new features, and/or the addition of new Content, as subject to the TOU.

This website supports a preliminary release of a weblog that may be changed substantially prior to final public release. This website is provided for informational purposes only and George makes no warranties, either express or implied, in this website. Information in this website, including all postings, URL and other Internet Web site references, is subject to change without notice. The entire risk of the use or the results from the use of this website remains with the user. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this website may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of George.

George may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this website. Except as expressly provided in any written license agreement from George, the furnishing of this website does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

The opinions expressed herein do not represent George’s personal opinions or his employer’s, family, or friends’ view in any way.

Source code

Source code (software) that is available on this website is licensed under this license:

Copyright © 2003-2007, George Tsiokos. All Rights Reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of this website nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.