Click here to Skip to main content
Click here to Skip to main content

Converter for Microsoft Project 2002 XML file to TODOLIST XML file

By , 23 Jan 2006
 

Introduction

I have been using .dan.g.'s ToDoList for a very long time now. It's very easy for me to track things that I have to do and also track the projects on which I am working. But there was always a problem related to the creation of task list. My organization uses Microsoft Project (like many other companies) for tracking projects and the cost of development related to these projects. So, I had to make two tasklists, one for the company and the other for myself. ToDoList is much more simpler when compared to Microsoft Project and for daily tracking you don't need rocket applications (like Microsoft Project) to do the tracking. So, I decided to go ahead and make a converter for ToDoList, but the problem was Microsoft Project 2000 didn't support XML, it supported only CVS or tab separated files. Since there wasn't a standard format for the CSV or tab separated files, I chose to make two task lists. Microsoft Project 2002 version had something different, it supported the whole task list to be converted into an XML file and this XML format was standard. This gave me an idea to convert the Microsoft Project 2002 task list to the ToDoList task list.

Background

Before you start using my converter for Microsoft Project, there are some points to be noted:

  • Although ToDoList is made in VC, I have built this application in .NET Framework. Since I have worked with .NET technologies for the past two years, I am much more comfortable with .NET than with VC. The .NET Framework is Microsoft's latest venture, and all the future OS from Microsoft are inherently going to support it. But for now, you will have to download some software to actually make my converter work. See the Software Required section for more details.
  • I have made this application keeping in mind the current XML format supported by ToDoList version 4.1.8. If there are any changes to the format of XML in the future versions of ToDoList, I take no responsibility for any loss of data or such stuff.
  • There are other data which is been captured by MS Project, but my converter will just take the data required for the todolist application. So the converted XML will never be 100% convertible with the original MS Project XML.

Software required

You will require the following software:

Using the software

The converter is very easy to use. Following are the steps to be taken for using the converter:

  • Save the MS Project 2002 or 2003 file as XML.
  • Pass the XML file as a parameter to the command line utility by typing the following at the command line:
TODOListConverter.exe <XML File of Microsoft Project 2002 or 2003>

The converted XML file will be saved to the same directory as the input XML file with a "TODO_" prefixed to the file name.

History

  • 20th January, 2006 - 1.2
    • Modified the code to adjust to XML changes in MS Project 2003 (Courtesy : ChrisPM)
    • Outputting the file as a ".tdl" file which is the default extension for todolist.
  • 24th May, 2005 - 1.1
    • Added functionality to link predecessors.
    • Mapped hyperlink column data to file reference attribute.
    • Modified the XML to automatically search for xmlns="http://schemas.microsoft.com/project" string and remove it.
    • Signed the assembly.
  • 16th May, 2005 - 1.0
    • Initial release.

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)

About the Author

maharishi_b
Program Manager Capgemini
United States United States
Member
I have been working in software industry for the past 11 years, though i am trained to be a pharmacist. Enjoy working on complex and new technologies. Also cleared my SCJP and MCP certification examinations.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionBug Report - Invalid Character Translation...membertOPsEEK23 Aug '07 - 23:07 
Hi there,
 
first, thanks for the tool. I've tried to convert some small projects and it worked fine. Except for one thing - it messed up "special" (read East European) characters e. g.
 
Original (UTF8 XML from MSP):
Nasadiť Oracle8 Client release 8.0.6 version 3.0
^
Translated (ANSI 1250):
TITLE="Nasadi? Oracle8 Client release 8.0.6 version 3.0"
^
 
Have you any idea what went wrong? Thanks in advamce, take care,
 
tOPsEEK
GeneralTODOList XML formatmemberfathibn15 Oct '06 - 7:02 
I am interrested to make a tool to import and export plannings from my home made projects manager to TODOlist.
Would you please help me (or point me to articles) to understand the TODOList file format.
TIA.
Fathi B.N.
AnswerRe: TODOList XML formatmembermaharishi_b27 Nov '06 - 6:38 
If you want to understand the TODOList file format, then you will have to read either my source code or the source code of the TODOList TODOList[^] tool. For understanding XML you can go to W3Schools[^] site to get tutorials on XML.
 
Hope this helps.
 
Maharishi
 
Nothing is Impossible. Even impossible spells "i m possible"

QuestionDowloading last versionmemberSam Long29 Aug '06 - 23:27 
Where can i get the last release (1.2 for MSP 2003) ?
 
The version downloaded by the link "http://www.codeproject.com/dotnet/TODOListConverter/TODOListConverter_exe.zip" is the one created in may 2005 (ver 1).

Questionis there a tool for the other way around?memberelhanan19 Jan '06 - 4:22 
for converting todolist files into ms-project files?
 
if so, is it easy to develop?

AnswerRe: is there a tool for the other way around?membermaharishi_b19 Jan '06 - 22:53 
yes its quite easy, because only thing you have to do is transform one kind of xml (todolist xml) into other type (msproject xml). So you can either do it programmatically by reading each & every data or u can write a xslt transformer that will do that job for you.
 
The only thing you will need to know will be the schema of the todo list xml & the msproject xml file...
 
Hope this help.
 
Thanks
 
Maharishi
 
Nothing is Impossible. Even impossible spells "i m possible"
GeneralRe: is there a tool for the other way around?memberelhanan20 Jan '06 - 0:24 
thanks, so where do i get the schema for the tolist and msproject ? (do they exists?)

AnswerRe: is there a tool for the other way around?membermaharishi_b23 Jan '06 - 19:03 
As far as schema of todolist is concerned you have to contact .dan.g for that, the developer of todolist application. As far as msproject is concerned you have to study the xml generated & make the assumptions.
 
Maharishi
 
Nothing is Impossible. Even impossible spells "i m possible"
NewsAlso works for Project 2003 - with one modificationmemberChrisPM6 Jan '06 - 6:08 
I also found this converter useful and because I'm working now with MSProjectPro2003 I wanted to adapt it to Project2003.
 
And I found that you only have to change Project/Title against Project/Name in XmlTranformer.cs at line 173 and rebuild the executable in order to be able to use TODOListConverter with Project 2003.
 
Thanks to Maharishi for the original converter
 
I would suggest to put this upgrade on this page in order to keep trace of the evolution of this useful converter. I can also provide the new .exe for 2003.
 
Chris

GeneralRe: Also works for Project 2003 - with one modificationmemberpauljenkins7147 Jan '06 - 16:57 
I'd be interested in seeing that too, Chris. I just played around for 5 minutes, making the changes that you suggested, but didn't work for me (I get an error message "File not in a proper format").
AnswerRe: Also works for Project 2003 - with one modificationmembermaharishi_b18 Jan '06 - 1:27 
Hi,
 
Thanks for the effort & supporting the project.
 
Since i have not worked with MS Project PRO 2003 i was not aware of the changes in the XML that has been done by the MS people.
 
But i will surely make the changes to the exe to include both Project/Title & Project/Name so that it is compatible with both the versions of MS Project i.e. MS Project 2002 & MS Project Pro 2003
 
One more thing can you send me the xml generated by the MS Project PRO 2003 software so that i can make the relevant changes... I dont have that version of the software Wink | ;)
 
Thanks
 
Maharishi Bhatia :->
 
Nothing is Impossible. Even impossible spells "i m possible"

GeneralRe: Also works for Project 2003 - with one modificationmemberChrisPM19 Jan '06 - 10:44 
I'll sent you that XML generated by MSProject2003 to your e-mail address.
 
Thanks
 
Chris
GeneralRe: Also works for Project 2003 - with one modificationmemberrichardmorgan29 Oct '07 - 23:22 
Hi,
 
I would like to try out the converter but the site only has v1.0 of the code and it looks like I need v1.2 as I use Project 2003. How do I get hold ot it?
 
Thanks
 
Richard
GeneralRe: Also works for Project 2003 - with one modificationmemberSlimFast20006 Dec '07 - 1:07 
Same for me - I only get 1.0 but would love to try 1.2 as I switched to Project 2003 recently.
Any chance you upload the new version, please?!
GeneralMS Project 2003 XML Option.memberSreenivas MK28 Jun '05 - 21:54 
Hello Everybody,
 
I have a question regarding the usage of Export / Import XML files into MS
Project 2003.
 
I plan to write a client application (VC++ ) which could import a MS Project file
(Importable XML File) into MS Project without opening the MS Project 2003
application.
 
A manual way of reimporting an exported MS Project File is possible. i
wanted this to be done by the client application.
 
* This application should be able to import the project xml file into MS
Project 2003.
 
* also Save the project file in its primitve format ".mpp" automatically if possible.
 
Shall be thankful for any ideas or suggestions, Smile | :)

 

Sreenivas MK

GeneralCould also be written as a TDL Importermember.dan.g.16 May '05 - 14:13 
TDL 4.1+ has a new plugin architecture for importers and exporters which would simplify the process of loading MSP xml files. such plugins are written as dlls, export 4 functions and must support a IImportTasklist or IExportTasklist pure virtual interface (like COM but less messy).
 
would it be okay for me to download the code, see if i can translate the code to use this method and then return it to you? or better still, is this within your skillset (no offense intended) ?
 
the reason for wanting the translation is that the plugin method is much neater than the executable technique and makes the import/translation process truly transparent to the user.
 
[update]Blush | :O should have looked at the code first. it's way beyond my current skillset to translate it. ps. does anyone know of any online documentation that shows how to create dlls exporting pure virtual interfaces under .NET? i've tried googling but without success. i just want to increase my knowledge in the area since it may be a useful way for me to start using .NET.
 
rgds
 
.dan.g.
 
AbstractSpoon Software
GeneralRe: Could also be written as a TDL Importermembermaharishi_b16 May '05 - 18:58 
Hi,
 
.dan.g. wrote:
[update] should have looked at the code first. it's way beyond my current skillset to translate it. ps. does anyone know of any online documentation that shows how to create dlls exporting pure virtual interfaces under .NET? i've tried googling but without success. i just want to increase my knowledge in the area since it may be a useful way for me to start using .NET.
 
pure virtual interfaces in VC are nothing but interface in C# you can create a interface and give all the method declarations in that. the class which is implementing the interface has to give a concrete implementations of all the methods defined in the interface. More than that you have to create the pure virtual interface in com and give it to .net it will automatically create a seperation layer between .net and com. And all the calling between the two sections will be taken care of.
 
I will be happy if you can provide just the dll of the IImportTasklist or IExportTasklist pure virtual interface so that i can test my project on that.
 
Thanks
 
Maharishi Cool | :cool:
 
Nothing is Impossible. Even impossible spells "i m possible"
GeneralGood to see MS Project articlesmemberMiguel Lopes16 May '05 - 4:10 
Hi,
 
Thought nobody programmed in MS Project! I only see posts in MSCE and its a very poor site for programmers.
 
Anyway, if i see some more ppl with interest in it, ill start writing some articles on it, as the support for Project programmers is scarce on the net. I program using PDS, i make PDS extenders and i use the standart office plugins for Project/Project Pro.
GeneralRe: Good to see MS Project articlesmembermaharishi_b16 May '05 - 23:12 
Hi,
 
I didnt do any programming in MS Project, but used MS Project capability to save mpp file as xml to generate ToDoList xml file.
 
You can start writing articles on MS Project if you want to, bcos there are lot of people who use MS Project for their project management.
 
Thanxs
 
Maharishi
 
Nothing is Impossible. Even impossible spells "i m possible"
GeneralRe: Good to see MS Project articlessussWillOMalley20 May '05 - 10:58 
Here is my situation:
I have an Exploded Bill Of Material
For each part I have the Exploded Operations
 
I have written the procedures that will break down what pieces I need and on what days but I would love to be able to create a chart using project for the planners.
 
Do you know of any good resources for programming this type of application?
 

 
Thanks
William O'Malley
GeneralRe: Good to see MS Project articlesmemberMiguel Lopes20 May '05 - 14:26 
Im sorry, english is not my prime language. What is "an Exploded Bill Of Material"? Can u explain it a bit better?
 
Neverless, will it be web based (project server) or project professional based?
The approach on the subject will differ a lot.
GeneralRe: Good to see MS Project articlessussWillOMalley23 May '05 - 2:50 
Sure can =)
 
An Exploded Bill of Material lists all the pieces and parts required to manufacture a product.
So lets say I have a widget(A).
Widget(A) requires:
Assembly 1
|--- Piece 1
|--- Piece 2
|--- Piece 3
Assembly 2
|--- Piece 4
|--- Piece 5
|--- Piece 6
Assembly 3
|--- Piece 7
|--- Piece 8
|--- Piece 9
This would be the exploded bill of material for Widget(A)
All component pieces are listed. This list would answer the question what do I need to make for Widget(A)
 
Now for the Exploded Routing
A requires
Assembly 1
|--- Piece 1
|-- Operation 10
|-- Operation 20
|-- Operation 30
|--- Piece 2
|-- Operation 10
|-- Operation 20
|-- Operation 30
|--- Piece 3
|-- Operation 10
|-- Operation 20
|-- Operation 30
Assembly 2
|--- Piece 4
|-- Operation 10
|-- Operation 20
|-- Operation 30
|--- Piece 5
|-- Operation 10
|-- Operation 20
|-- Operation 30
|--- Piece 6
|-- Operation 10
|-- Operation 20
|-- Operation 30
Assembly 3
|--- Piece 7
|-- Operation 10
|-- Operation 20
|-- Operation 30
|--- Piece 8
|-- Operation 10
|-- Operation 20
|-- Operation 30
|--- Piece 9
|-- Operation 10
|-- Operation 20
|-- Operation 30
This shows not only what is required to manufacture Widget(A)
it also shows how to manufacture each piece required for each assembly. This list answers both what do I need to make and how do I make it.
My application goes even further to give a timeline of when each step would need to be completed inorder to meet a deadline.
 
Yes this would be a Web Application, but depending on what is involved I may decide to make this a windows application I am not sure yet.
 
Well I hope I have answered your question if not let me know.
 
thanks for the help.
 
William O'Malley
GeneralRe: Good to see MS Project articlesmemberMiguel Lopes23 May '05 - 5:06 
k, my toughts on that:
 
- Usually this kind of stuff isnt made in project, but done in some connected system like SAP or CCS and then Project gets an abstract view of that
 
- You havent specified yet what you really want to use project for. To calculate new schecdule of production depending on other activities? To give a good hierarquical view of the process and dependencies? Just to give a graph? Could you please specifie better?
 
-When i asked if it was going to be a Web-app, i was not talking about your application enviroment but in the way your application will interact with project. It can interact either with project professional (requires instalation of Project in the user machine), directly with Project Server database or with both.
GeneralRe: Good to see MS Project articlesmemberOMalleyW23 May '05 - 6:25 
sorry...
 
ok what do I want.
I have calculated the schecdule using SQL Server 2000 all I need to do is display the data.
I want to provide users with a Visual Timeline with dates:
Part A is due on ---
Part B Must be started on ---
The application will interact with Project Pro. we do not have Project server.
 

Thank you,
William O'Malley
GeneralRe: Good to see MS Project articlesmemberMiguel Lopes23 May '05 - 7:18 
Well, the best way to interact with PP is building a Office Addin in VS.NET in C# or VB. You can also do it in VC++, but it will take a lot more work.
So, u need 2 things:
 
- learn how to make an office plugin (very easy using .NET)
- use Microsoft Office Project 2003 SDK to learn how to interact with PP
 
Download Microsoft Office Project 2003 SDK, which already includes a plugin example in C# (or VB, or both, im not sure) for PP. Adding tasks from your system to generate a timeline and some extra custom columns should be easy after you get the hang of it.
 
any further questions, just ask Smile | :)

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web03 | 2.6.130516.1 | Last Updated 23 Jan 2006
Article Copyright 2005 by maharishi_b
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid