Introduction
I like to script Data Schemas and Tables manually. I believe we have a utility that helps with this, but I haven't reviewed it or trust it. Plus, this gives me the most flexibility to setup Lookups and Data Sites programatically. As a result I need a reference. We have 17 table column types, and many have special XML config to remember.
This document is my reference to help construct table columns in SQL code.
~Jon
General
Declare an XML variable for each column.
DECLARE @col1Name NVARCHAR(50) = '';
DECLARE @col1 XML = CONVERT(XML, '<!-- XML goes here -->');
The sections that follow describe the XML for each column type.
Keep in mind that you'll need to make changes to the given XML, including:
- Replace Sequence with positive incrementing values for ordering columns
- If its a Linked Property column:
- Change XPathExtractor
- Change XPathName
- Add <LinkedToProperty></LinkedToProperty> after ControlConfig
- If using MetatagKeywords, change CustomXPathFunction to Prop_PackageKeywords
- If using a RawXML column with a linked property, change CustomXPathFunction to SFGetEditValue
- If using a Links or Files column with a linked property, change CustomXPathFunction to ItemList_PackageDataAsText
Freeform
DataControlTypeID = 1
Supports: None
<Column ID="1">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Freeform]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>1</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="1">
<Name>IFrameWidth</Name>
<Config>
<DefaultValue>95%</DefaultValue>
</Config>
</Type>
<Type ID="1">
<Name>IFrameHeight</Name>
<Config>
<DefaultValue>150px</DefaultValue>
</Config>
</Type>
<Type ID="1">
<Name>CssFile</Name>
<Config>
<DefaultValue/>
</Config>
</Type>
<Type ID="1">
<Name>CssClass</Name>
<Config>
<DefaultValue>Freeform</DefaultValue>
</Config>
</Type>
<Type ID="2">
<Name>UI</Name>
<Config>
<DefaultValue>Popup</DefaultValue>
</Config>
</Type>
<Type ID="2">
<Name>Toolbar</Name>
<Config>
<DefaultValue>Default</DefaultValue>
</Config>
</Type>
<Type ID="2">
<Name>Template</Name>
<Config>
<DefaultValue>Freeform</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>0</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>freeform</DisplayInputType>
</Control>
</Config>
</Column>
Text (1 line)
DataControlTypeID = 2
Supports: Sort, Compare (Relationships), Keyword, Range
<Column ID="2">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Text (1 line)]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>2</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>textbox</DisplayInputType>
</Control>
</Config>
</Column>
Text Area
DataControlTypeID = 3
Supports: Keyword
<Column ID="3">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Text Area]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>3</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="1">
<Name>Rows</Name>
<Config>
<DefaultValue>3</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>textarea</DisplayInputType>
</Control>
</Config>
</Column>
File (single)
DataControlTypeID = 3
Supports: None
Change Source to one of: FilePiles, Images, ImagesNoSize, Videos
<Column ID="4">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[File (single)]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>4</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="2">
<Name>Source</Name>
<Config>
<DefaultValue>FilePiles</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>filepicker</DisplayInputType>
</Control>
</Config>
</Column>
File (multiple)
DataControlTypeID = 5
Supports: None
Change Source to one of: FilePiles, Images, ImagesNoSize, Videos
<Column ID="5">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[File (multiple)]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>5</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="2">
<Name>Source</Name>
<Config>
<DefaultValue>FilePiles</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>multifilepicker</DisplayInputType>
</Control>
</Config>
</Column>
External Key
DataControlTypeID = 6
Supports: Compare (Relationships; default on), Keyword
<Column ID="6">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[External Key]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>6</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>1</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>textbox</DisplayInputType>
</Control>
</Config>
</Column>
Links
DataControlTypeID = 7
Supports: Compare (Relationships; default on)
<Column ID="7">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Links]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>7/ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="5">
<Name>Source</Name>
<Config>
<DefaultValue />
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>1</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>linkpicker</DisplayInputType>
</Control>
</Config>
</Column>
Checkbox
DataControlTypeID = 8
Supports: Sort
Change text in DefaultValue for LabelText
Change state Unchecked|Checked for DefaultState
<Column ID="8">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Checkbox]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>8</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="1">
<Name>LabelText</Name>
<Config>
<DefaultValue/>
</Config>
</Type>
<Type ID="2">
<Name>DefaultState</Name>
<Config>
<DefaultValue>Unchecked</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>checkbox</DisplayInputType>
</Control>
</Config>
</Column>
Lookup
DataControlTypeID = 9
Supports: Compare (Relationships; default on), Category Filtering (default on)
<Column ID="9">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Lookup]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>9</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="3">
<Name>LookupSource</Name>
<Config>
<DefaultValue>' + CONVERT(NVARCHAR(4), @tag1ID) + '</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>1</AllowCompare>
<AllowFilterCategory>1</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>tags</DisplayInputType>
<LinkedToProperty>Lookups</LinkedToProperty>
</Control>
</Config>
</Column>
Radio buttons
DataControlTypeID = 10
Supports: Sort, Compare (Relationships; default on), Range
Change the options
DisplayInputType can be dropdown or radio
<Column ID="10">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Radio buttons]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>10</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams>
<Type ID="4">
<Name>CmsFormItems</Name>
<Config>
<DefaultValue>
<Option Value="DB Value">option label text</Option>
</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>1</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>dropdown</DisplayInputType>
</Control>
</Config>
</Column>
Date
DataControlTypeID = 11
Supports: Sort, Range
<Column ID="11">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Date]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>11</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>date</DisplayInputType>
</Control>
</Config>
</Column>
Date and Time
DataControlTypeID = 12
Supports: Sort, Range
<Column ID="12">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Date and Time]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>12</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>datetime</DisplayInputType>
</Control>
</Config>
</Column>
Number (Decimal/Currency)
DataControlTypeID = 13
Supports: Sort, Range
<Column ID="13">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Number (Decimal/Currency)]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>13</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction>Wkst_ValueIsCurrencyOptional</ValidatorFunction>
<ErrorMessageFunction>Wkst_MustBeDecimalNumber</ErrorMessageFunction>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>textbox</DisplayInputType>
</Control>
</Config>
</Column>
Raw XML
DataControlTypeID = 14
Supports: None
requires CustomXPathFuntion SFGetEditValue
<Column ID="14">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Raw XML]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>14</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction>SFGetEditValue</CustomXPathFunction>
</BaseParams>
<CustomParams>
<Type ID="1">
<Name>Rows</Name>
<Config>
<DefaultValue>3</DefaultValue>
</Config>
</Type>
</CustomParams>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>xmltextarea</DisplayInputType>
</Control>
</Config>
</Column>
Geographic Coordinate
DataControlTypeID = 15
Supports: None
<Column ID="15">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Geographic Coordinate]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>15</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>latlong</DisplayInputType>
</Control>
</Config>
</Column>
Number (Integer)
DataControlTypeID = 16
Supports: Sort, Compare (Relationships; default on), Range
<Column ID="16">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Number (Integer)]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>16</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction>Wkst_ValueIsNumberOptional</ValidatorFunction>
<ErrorMessageFunction>Wkst_MustBeNumber</ErrorMessageFunction>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>1</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>textbox</DisplayInputType>
</Control>
</Config>
</Column>
Date and Time w/ Recurrence
DataControlTypeID = 17
Supports: Sort, Range
<Column ID="17">
<Name><![CDATA[' + @col1Name + ']]></Name>
<ColumnName><![CDATA[Date and Time w/ Recurrence]]></ColumnName>
<Config>
<Control>
<SchemaID>' + CONVERT(NVARCHAR(4), @schemaID) + '</SchemaID>
<ColumnID>-1</ColumnID>
<TableID>' + CONVERT(NVARCHAR(4), @tableID) + '</TableID>
<Name>' + @col1Name + '</Name>
<Description>' + @col1Name + '</Description>
<Sequence>1</Sequence>
<ControlTypeID>17</ControlTypeID>
<ControlConfig>
<Config>
<CssStyles/>
<BaseParams>
<Label/>
<Title/>
<FriendlyName>' + @col1Name + '</FriendlyName>
<XPathExtractor>/Content/Article/' + @schemaPrefix + '.' + @tableNameSingular + '/' + @col1Name + '</XPathExtractor>
<XPathName>' + @col1Name + '</XPathName>
<ValidatorFunction/>
<ErrorMessageFunction/>
<ChangeDetectorFunction/>
<ChangeMessageFunction/>
<DefaultValueExtractor/>
<ValueExtractor/>
<CustomXPathFunction/>
</BaseParams>
<CustomParams/>
</Config>
</ControlConfig>
<AllowList>1</AllowList>
<AllowDetail>1</AllowDetail>
<AllowUpload>1</AllowUpload>
<AllowSort>0</AllowSort>
<AllowCompare>0</AllowCompare>
<AllowFilterCategory>0</AllowFilterCategory>
<AllowFilterKeyword>0</AllowFilterKeyword>
<AllowFilterRange>0</AllowFilterRange>
<AllowWkstEdit>1</AllowWkstEdit>
<AllowWkstImport>1</AllowWkstImport>
<DisplayInputType>datetimerecur</DisplayInputType>
</Control>
</Config>
</Column>