Latest Release:
January 4, 2006

Release Notes
Road Map
Project Page
Donate to SDValidator

Questions and Updates
Join our mailing list:
SDValidator Users

   Help (incomplete)
    SDD Language

Frequently Asked Questions



Runtime/Installation Issues

About the SDValidator Project

The data format I need to validate is not among the available SDDType Definitions?
Send me samples of the format. I may be able to create an SDDType Definition for you.
Back to Functionality

What is an Alias?
An alias is a user-defined shortcut for inserting text. You define aliases using the Alias Manager which is access from Edit | Manage Aliases. Aliases are selected from the drop-down list box in the upper left corner of the screen.
Back to Functionality

How do I undo an Alias insertion?
An alias insertion often involves two insertion operations. Text is placed before and after the highlighted text or insertion point. As of version 0.6.2, an alias can be undone/redone with a single click of the undo or redo buttons on the toolbar.
Back to Functionality

What is a Newline Type?
Operating systems are not consistent in the characters placed at the end of lines to separate lines of text. You can alter the type of line separator used when a document is saved by seleting from a drop-down list.
Back to Functionality

How do I use the Search Between feature?
Enter text in the text boxes labeled "Begin" and "End." Make sure the check box labeled "Apply Find-Between" is checked. Press the "Find" button. The application will look for the first piece of text and then the second. If both pieces are found, the action you selected will be carried out. For instance, if you selected "Select Text", the text between the two search strings will be selected. You can also use Find-Between as a pre-condition to standard Find and Replace operations.
Back to Functionality

What do the loose/strict keywords do?
Loose means that data validation should be carried out using the least restrictive method available. Strict means that the most restrictive method should be used. These concepts have meaning both at a macro and micro level. The macro level--accessed through Validation | Configuration--controls how data validation will be handled for all the elements in an SDD. At the micro level, SDD developers can specify a local override of the macro setting. The table below summarizes the application's behavior--the order in which it will select the different types of validation--in various circumstances. The ultimate default if DataTypes or an RGX have not been specified is an empty DataType.

Element Level (keyword in SDD)
Default Loose Strict
  1. Use DataType
  2. Use Regular Expression
  1. Use DataType
  2. Use Regular Expression
  1. Use Regular Expression
  2. Use DataType
  1. Use Regular Expression
  2. Use DataType
  1. Use DataType
  2. Use Regular Expression
  1. Use Regular Expression
  2. Use DataType

Back to Functionality

How do I specify regular expressions?
Regular expressions appear in sdds as rgx="a regular expression". To create one within the developer, click on the RGX tab at the bottom of a developer window then select New or Edit. Regular expressions can also be used to specify attribute values. Here are some examples of the regular expression syntax.
Regular ExpressionMeaning
wordMatches word and nothing else.
This phrase\.Matches This phrase. and nothing else, including the different cases, whitespace, and punctuation. Note the backslash before the period. This is required because the period has special meaning to the regular expression engine. It signifies a match of anything except a newline.
[a-c0-2]+Matches any string of at least one character in length composed of the characters and digits a, b, c, 0, 1, 2. So, a011bc2b would be a match but a011bc3b would not because of the 3.
[A-C8-9]{3}Matches any string of length 3 characters from the set A, B, C, 8, or 9.
[A-C8-9]{3,5}Matches any string of length 3, 4, or 5 characters from the set A, B, C, 8, or 9.
[A-C8-9]{3,}Matches any string of length 3 or more characters from the set A, B, C, 8, or 9.
[0-9]{3}-[0-9]{2}-[0-9]{4}Matches the Social Security Number format: 000-00-0000.
he[l]*pMatches the word help with an unlimited number of l's, including none. For example, hep and helllllp would both match.
&(?![a-zA-Z]+;)This example uses a negative lookahead (?! ... ) to find instances of an & that is not followed by a sequence of letters and a semicolon.
(?!Further Reading|NAICS Code\(s\))[A-Za-z \(\)]+This example uses a negative lookahead (?! ... ) to match any string containing upper and lower case letters, spaces, and parens except for the phrases "Further Reading" and "NAICS Code(s)".

Back to Functionality

Where can I learn more about regular expressions?
The regular expression package that the application uses is based on Perl5 regular expressions. Here are some sources for additional information:
OROMatcher's User Guide
Perl Documentation on Regular Expressions

Back to Functionality

What is an SDDType?
An SDDType defines characteristics of a data format and tools that the application uses to process files in that format.
Back to SDDTypes

Which document formats are supported?
The publicly available SDDTypes include Delimited Value Files (such as comma-separated values), FCIF (Flexible Computer Information Format), Java Property Files, HTML, SGML, and XML. Support for new formats can be added on request.
Back to SDDTypes

How do I know which SDDTypes are loaded?
Select SDD Development | View SDDTypes. This will bring up a dialog box that lists the available SDDTypes and their characteristics.
Back to SDDTypes

How do I add SDDTypes?
SDDTypes are stored in jar files that are dynamically loaded when you start the application. These jar files must be placed in /SDValidator/typelib or <your-home-directory>/SDValidator/typelib. To add a new type, obtain the jar file and place it in one of the directories listed above then restart the application.
Back to SDDTypes

How do I configure an SDDType?
Select SDD Development | View SDDTypes. If a type is configurable, the Configure button will become active when you select a type in the table at the top of the dialog. Press the Configure button, make changes to the type's configuration, then press Apply in the config dialog.
Back to SDDTypes

How do I use the Delimited Values type?
The first tag in an sdd for this type must be start-value and all subsequent tags must be called value. You can use namespaces to differentiate the value tags. The default separator is assumed to be a comma but you can configure this type to use a different separator character. You can also configure this type to ignore the first line of the file during validation. (Sometimes the first line of a delimited values file will contain the column heading names).
Back to SDDTypes

Where and what is my home directory?
Your "home directory" is a platform dependent property. This is where the application will store your preferences. To find its location, Select Help | About and then click on the User tab. You will see information regarding the version of Java you're using, the operating system, and your user name and home directory.
Back to Runtime/Installation Issues
What are the directories and files used by the application?
SDValidator directory (created during installation)
/binmain application file
/libsupport libraries used by the application
/typelibstandard SDDType definitions
User's home directory (created by application)
SDValidator/aliasstore.seralias definitions
SDValidator/datafavorites.serfavorite directories for non-SDD files
SDValidator/sddfavorites.serfavorite directories for SDD files
SDValidator/ParserProps.propertiesuser preferences and persistent application state
SDValidator/RGXUserLib.propertiesuser-defined regular expressions
SDValidator/typelibInitially this directory will be empty. User's should place additional SDDType definitions here.

Back to Runtime/Installation Issues

Why do my mouse and keyboard not work currectly?
If your num-lock key is set, unset it. X doesn't seem to handle keyboard and mouse clicks for Java apps correctly when the num-lock key is set.
Back to Runtime/Installation Issues

Why is the application so sluggish?
Support for Java under Linux is not as good as it could be, particularly for the GUI components. If you have root privileges, try the following command: su root -c "snice -12 -c X" This will give your X server a priority boost.
Back to Runtime/Installation Issues

Why are you doing this?
Entertainment. : ) Before pursuing a degree in Computer Science, I worked as an editor and was constantly frustrated by the inadequacy of the tools available for data validation.
Back to About the SDValidator Project

How much does the application cost?
Nothing. Just send feedback. You could also contact O'Reilly and tell them you would like to see a book published on using the application. : )
Back to About the SDValidator Project

Is the source code available?
As of version 0.6.2, the application and its source have been released under the GPL. The source for the applicaton, libraries, SDDTypes, and 3rd party libraries is available on the downloads page.
Back to About the SDValidator Project

What does the "QC" in the application's icon stand for?
The "QC" stands for Quality Control.
Back to About the SDValidator Project