Hi, After reviewing the XML you provided the following question arose in me:
- What is the advantage of grouping the accounts by account type in the XML? One of the feature what you'd like to implement is to be able to modify the fields for an account. If you group the account by type and the field description is defined for the type all of the accounts for that type must have those fields. I see in the file that you can easily add new custom fields, but why can't you remove something what you don't need. ;-))) I know stop barking.... This question led me to think how could revelation be even more flexible. And this is my proposal. How about if there were no account types. There are only predefined field types: - Text - Password - e-mail - URL - Executable - Long Text (Memo) - Date - File attachment And there are only templates instead of the existing account types. So lets say that a user wants to create a Web account. Revelation has a template for web accounts and based on that it will create an account with the default web icon, add a URL, username and password fields and the account is created. If the user wants to add two more password fields and remove the username and add one e-mail field let him do it. When you display this whole thing you just iterate through the list of fields and display the content based on the field type. If the field is a URL there is a little browser button beside the text, if it is a password field there is the password generator button beside the text, and so on. This way you leave the system wide open the only fixed thing is the available field types. Even the templates should be editable they come with the default install and they can be deleted and new ones can be added. I'm sure that would completely mix up your code. I checked and the account types are all over the place and it would make the display section a little bit more complicated too. On the other hand it would also simplify the code because you eliminate the account type completely there are only accounts with field lists. The XML would be simpler too, because the account type level would be eliminated. I modified your example.xml just to show how would it look like without the account type. What do you think? Karoly Erik Grinaker wrote: > Hi, > > Here's a quick example of how the new XML format will look, if anyone is > interested. I'll write up a more comprehensive spec later. > > Let me know if you have any comments. > > >
<?xml version="1.0" encoding="utf-8" ?> <revelationdata version="1.0" id="722ec5ad92a014c81ec71b06db23faab"> <account id="b60ec40e"> <name>World of Warcraft</name> <description></description> <icon>stock_cd</icon> <modified>2007-02-15 18:26:27</modified> <tag>game</tag> <field index="0"> <name>Key</name> <description>The key for the application</description> <datatype>secret</datatype> <content>HF73-J9YF-86OB-1VHU-MMAR</content> </field> <field index="1"> <name>Username</name> <description>Username</description> <datatype>test</datatype> <content>egrinake</content> </field> <field index="2"> <name>Password</name> <description>Password</description> <datatype>secret</datatype> <content>83hfew</content> </field> <field index="3"> <datatype>launcher</datatype> <content>WoW.exe</content> </field> <field index="4"> <name>Cheates</name> <description>My favourite cheats</description> <datatype>note</datatype> <content>Press CTRL-ALT-WinKey-CAP-LOCK three times within five seconds</content> </field> </account> <account id="b60ec40e"> <name>World of Warcraft</name> <description></description> <icon>stock_cd</icon> <modified>2007-02-15 18:26:27</modified> <tag>game</tag> <field name="Key" description="The key for the application" datatype="secret">HF73-J9YF-86OB-1VHU-MMAR</field> <field name="Username" description="Username" datatype="text">egrinake</field> <field name="Password" description="Password" datatype="secret">83hfew</field> <field datatype="launcher">WoW.exe</field> <field name="Cheates" description="My favourite cheats" datatype="note">Press CTRL-ALT-WinKey-CAP-LOCK three times within five seconds</field> </account> </revelationdata>