XML Checklist Template
An XML Checklist Template (CT) is a type of XML Template that you use to describe a checklist to MindModel.
What is a checklist?
Checklists are used in MindModel to speed up data entry.
For example, imagine a situation where you want to enter information about the languages that a person speaks. Let's say the person speaks English, French and Spanish.
You could use the Add/Edit Statement Wizard to add three statements:
person: John Doe <speaks the language> language: English
person: John Doe <speaks the language> language: French
person: John Doe <speaks the language> language: Spanish
This approach would work, but would require you to choose the verb and the object noun type each time.
You could create a spreadsheet with the information, then use the File Menu: Import Statements from Excel by Column command.
Again, this approach would work, but may or may not be convenient depending on your situation.
Another way to enter the data would be to use the Toolbar: Add Statements by Checklist command.
What does a checklist look like?
Once you chose the checklist from the drop-down menu on the right side of the "Add Statements" Toolbar item, MindModel would present a dialog that looks something like this:
Add Statements by Checklist

All you have to do to add statements saying that John Doe speaks these three languages is to check the three check-boxes.
Of course, if you wanted to check some other number of checkboxes, you could do that instead.
Why are the checkboxes unchecked?
In the picture above, the checkboxes are unchecked because the model does not contain any statements about what languages John Doe speaks. If it did, the appropriate checkboxes would be checked when MindModel opened the dialog.
OK, I know what XML Checklist Templates are and how they are used. How do I create one?
Let's take a look at a simple XML Checklist Template, so we can understand how to create one.
The "people speaks the language" XML Template
<?xml version="1.0" encoding="utf-8"?>
<mmxml>
<title>person speaks the language</title>
<checkList>
<caption>(name) speaks the following languages:</caption>
<anchor>subject</anchor>
<target>object</target>
<statementPattern>person|speaks the language|language</statementPattern>
</checkList>
</mmxml>
What the heck was all that?
Let's take the XML Checklist Template apart piece by piece, and you'll see that it makes sense.
The XML Declaration
The XML template begins with an XML declaration, which looks like this:
<?xml version="1.0" encoding="utf-8"?>
The XML declaration tells MindModel that the template is an XML file.
XML Templates must begin with an XML declaration.
The <mmxml> Element
The rest of the XML template (after the XML declaration) is enclosed in a pair of <mmxml></mmxml> tags.
This element tells MindModel that the XML is MindModel XML.
XML templates must contain an <mmxml> element.
The Title Element
The next element is the title element, which looks like this:
<title>person speaks the language</title>
The title element tells MindModel which title to display when referring to this XML template. So, in our case, MindModel displays "person speaks the language" as the title of the XML template when displaying the drop-down menu in the MindModel Toolbar.
XML templates must contain a <title> element.
The <checkList> Element
The next section of the XML template contains the <checkList> element.
Each XML Checklist Template must contain one <checkList> element.
<checkList> elements allow you to specify the contents of the checklist.
An Example of a <checkList> Element
Let's take a look at the <checkList> element in our XML template:
<checkList>
<caption>(name) speaks the following languages:</caption>
<anchor>subject</anchor>
<target>object</target>
<statementPattern>person|speaks the language|language</statementPattern>
</checkList>
The <caption> Element
The <caption> element of the <checkList> element provides the words that you will see at the top of the Add Statements by Checklist dialog.
The "(name)" part of the <caption> element tells MindModel to insert the name of the selected noun, in our case "John Doe".
The "(name)" part of the <caption> element is optional. You do not have to include it.
The <anchor> Element
The next element is the <anchor> element.
The <anchor> element tells MindModel which part of the statement contains the current noun (John Doe).
In our case, the current noun is the subject, since John Doe is the subject of the statement:
person: John Doe <speaks the language> language: English
We use the word "anchor" because the current noun anchors the statement, like a boat anchor does for a boat.
The <target> Element
The next thing MindModel needs to know is which part of the statement will contain the checklist items.
Since the anchor is the subject, the part of the statement that will contain the checklist items ("English", "French", and "Spanish") will be the object.
So the <target> element reads:
<target>object</target>
The <statementPattern> Element
So now MindModel needs to know one more thing about the statement, its statement type.
All statements about people speaking languages are of the type:
person|speaks the language|language
so the <statementPattern> element reads:
<statementPattern>person|speaks the language|language</statementPattern>
Now MindModel knows all it needs to know to Add Statements by Checklist.
The <staticChoiceList> Element
There is one more type of element you can choose to include in the <checkList> element, the <staticChoiceList> element.
The <staticChoiceList> element is optional. You do not have to include it.
You can use a <staticChoiceList> element to provide MindModel with a fixed (or "static") list of choices to present to the user.
Without a <staticChoiceList> element, the XML Checklist Template listed above will display a checkbox for every language noun in the model. If there are 15 languages in the model, there will be 15 checkboxes in the checklist.
There are times when you will want to restrict the user's choices in the checklist. At those times, you'll use the <staticChoiceList> element to provide MindModel with a fixed set of choices to include in the checklist.
Huh?
We realize that this section of the documentation contains quite a bit of new information, which may be confusing at first. Take your time, and read through it. Once you understand how it works, you'll see that it's not as complicated as it appeared to be when you first encountered it.
If you've read through this section carefully, and it still doesn't make sense, feel free to contact us and we'll be happy to answer any questions you may have.
Importing a Checklist Template
Once you've created an XML Checklist Template, you can use the "Templates Menu: Import Checklist Template" command to import it into MindModel.
You may find it helpful to export the XML Checklist Template discussed in this example, to use as a starting point.
You can use the "Templates Menu: Export Checklist Template" command to do so.
The XML Checklist Template in this example is called "person speaks the language".
As always, read the documentation first, try it out, and if you get stuck, contact us.