Using UltraEdit’s function list with Dovetail Schema files
A question recently came up on how to use UltraEdit to show the list of all of the objects in a Dovetail SchemaEditor Data Dictionary file. A Data Dictionary file is a complete definition of a schema.
As I’ve mentioned in the past, I rarely use complete schema files, preferring instead to work with simpler schemascript files.
Although I often use UltraEdit for editing text files, I rarely use UltraEdit for editing XML files. I prefer Visual Studio, with its integrated support for XSD, which gives me intellisense and syntax checking.
Regardless, I dove into UltraEdit configuration, and with a bit of help from Sam Tyson, I figured out how to make this work.
We’ll use UltraEdit’s function list functionality to make this work. In my version (UltraEdit 16), it’s accessed by the menu: View –> Views/Lists –> Function List.
This will bring up the Function list pane.
Right-click on the Function list pane, and choose Configuration.
Fun with Regex
From here, we can use regular expressions to match the groups that we want to display.
A table definition in a Dovetail schema file looks like:
<table id="0" name="case" groupName="Support">
So we can match on that format, and we’ll output the table constant (to distinguish a table from a view), the table’s ID number, and its name. The regex looks like:
*<^(table id=*name=*"^) groupName="*">
This is how it looks in the Configuration screen:
And this is what we see in the editor:
Notice that the “function” list in the right pane now shows all of the schema tables present in the file.
Clicking on one of those entries will navigate you to that exact spot in the file.
We can do a similar thing for views. We’ll add a 2nd config setting to pick up the views.
View definitions look like:
<view id="289" name="rol_contct" groupName="Customer Mgr">
So we’ll add a config of:
*<^(view id=*name=*"^) groupName="*">
Our config (for both tables and views) now looks like:
And our function list now shows views (as well as tables):
Again, clicking on one of the views from the function list will take you directly to that spot in the file.
Just the names please
We can also modify the config so that it only shows the table and view names, like so:
*<table id="*" name="^(*^)" groupName="*">
*<view id="*" name="^(*^)" groupName="*">
Which results in just the table/view names being displayed in the Function list:
Hope you UltraEdit users find this helpful.