Documentation Center

Elements on Forms and Form Fields

The following elements on forms and form fields have been added or updated.

ElementDescription
scriptA new type Script allowing a mixed content with a constraint on the language attribute for Csharp, Visual Basic, Jscript, VBScript.NET, JScript.NET.
metadatafilteroperatorChanged the type of the ishoperator from xs:string to metadatafilteroperator.
versionlistIn valuelisttypes a new empty element versionlist of the complew type is added.
sortorderIn valuelist a new attribute sortorder from the general type sortorder is added with optional use.
typecondition
  • Optional use to the assist attribute.
typedate
  • New attribute useoperators of the type useoperatorstype and optional use.
typefile
  • Optional use to the assist attribute.
typemultilinetext
  • Optional use to the attributes lines, assist and filter
typenumeric

New type typenumeric (complex) with a reference to the attributeGroup condition

  • Attribute decimalplaces, integer, optional use, default=0
  • Attribute increment, decimal, optional use, default=1
  • Attribute minimum, decimal, optional use, default=0
  • Attribute maximum, decimal, optional use, default=100
  • Attribute useoperators of the type useoperatorstype, optional use
typeoptions

New type typeoptions (complex) with a reference to the attributeGroup condition

  • Sequence of valuelist, max occurs=unbounded
  • Attribute flowdirection, type flowdirection, optional, default = vertical
typepulldown 
typereference
  • In selectabletypes two extra restrictions (acceptable values): ISHOutputFormat and ISHPublicationOutput
  • Optional use to the attribute assist
typetext
  • Optional use to the attributes assist and filter
  • New attribute useoperators of the type useoperatorstype and optional use.
displaytype
  • New element typenumeric of the type typenumeric with a minimum occurrence of 0
  • New element typeoptions of the type typeoptions with a minimum occurrence of 0
ishfrmfield
  • Group reference frmbehavior renamed to ishfrmfieldbehavior
  • New element metadatafilteroperator of the type metadatafilteroperator with a minimum occurrence of 0 and a maximum occurrence of unbounded
  • New element fulltextsearchoperator of the type fulltextsearchoperator with a minimum occurrence of 0 and a maximum occurrence of unbounded
  • New element script of the type script with a minimum occurrence of 0 and a maximum occurrence of unbounded
  • New attribute group ishfrmfieldevents with the attributes: load, enter, leave, valuechanged, validating
ishfrmgroup
  • New attribute expandstate of the type expandstate and optional use
ishfrm
  • New element script of the type script with a minimum occurrence of 0 and a maximum occurrence of unbounded
  • New attribute group ishfrmevents with the attributes: load, closing, validating is added.
The following illustrates how this is configured in the MetadataConfig.xsd file
<!-- ***********************************************************************************************-->
	<!-- ********** Types for ishfrm *******************************************************************-->
	<!-- ***********************************************************************************************-->
	<!-- ********** Script *****************************************************************************-->
	<xs:complexType name="script" mixed="true">
		<xs:attribute name="language">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="CSharp" />
					<xs:enumeration value="Visual Basic" />
					<xs:enumeration value="JScript" />
					<xs:enumeration value="VBScript.NET" />
					<xs:enumeration value="JScript.NET" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ********** ishfields **************************************************************************-->
	<xs:element name="ishfields">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ishfield" type="ishfield" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ishfield">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="name" type="xs:string" use="required"/>
				<xs:attribute name="level" type="level" use="required"/>
				<xs:attribute name="ishoperator" type="metadatafilteroperator"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ********** ValueLists *************************************************************************-->
	<xs:group name="valuelisttypes">
		<xs:choice>
			<xs:element name="userlist">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="usermetadatafilter" minOccurs="0">
							<xs:complexType>
								<xs:sequence>
									<xs:element ref="ishfields"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="restrictusergroup" type="boolean"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="baselinelist">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="baselinemetadatafilter" minOccurs="0">
							<xs:complexType>
								<xs:sequence>
									<xs:element ref="ishfields"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="transitionstatelist">
				<xs:complexType/>
			</xs:element>
			<xs:element name="versionlist">
				<xs:complexType/>
			</xs:element>
			<xs:element name="lovlist">
				<xs:complexType>
					<xs:attribute name="ishlovref" type="xs:Name" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="enumlist">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="item" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="value" type="xs:string"/>
									<xs:group ref="header"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:group>
	<xs:complexType name="valuelist">
		<xs:group ref="valuelisttypes" minOccurs="0"/>
		<xs:attribute name="ref" type="xs:IDREF" use="optional"/>
		<xs:attribute name="id" type="xs:ID" use="optional"/>
		<xs:attribute name="sortorder" type="sortorder" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<!-- ********** Display Types  *********************************************************************-->
	<xs:complexType name="typecheckbox">
		<xs:sequence>
			<xs:element name="checkedvalue">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attributeGroup ref="condition"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="uncheckedvalue">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attributeGroup ref="condition"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typecondition">
		<xs:attribute name="assist" type="boolean" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typedate">
		<xs:attribute name="useoperators" type="useoperatortype" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typefile">
		<xs:sequence>
			<xs:element name="valuelist" type="valuelist" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="assist" type="boolean" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typelabel">
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typemultilinetext">
		<xs:sequence>
			<xs:element name="valuelist" type="valuelist" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="lines" type="xs:byte" use="optional"/>
		<xs:attribute name="assist" type="boolean" use="optional"/>
		<xs:attribute name="filter" type="boolean" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typenumeric">
		<xs:attribute name="decimalplaces" type="xs:integer" use="optional" default="0" />
		<xs:attribute name="increment" type="xs:decimal" use="optional" default="1" />
		<xs:attribute name="minimum" type="xs:decimal" use="optional" default="0" />
		<xs:attribute name="maximum" type="xs:decimal" use="optional" default="100" />
		<xs:attribute name="useoperators" type="useoperatortype" use="optional"/>
		<xs:attributeGroup ref="condition" />
	</xs:complexType>
	<xs:complexType name="typeoptions">
		<xs:sequence>
			<xs:element name="valuelist" type="valuelist" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="flowdirection" type="flowdirection" use="optional" default="vertical" />
		<xs:attributeGroup ref="condition" />
	</xs:complexType>
	<xs:complexType name="typepulldown">
		<xs:sequence>
			<xs:element name="valuelist" type="valuelist" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typereference">
		<xs:sequence>
			<xs:element name="selectabletypes" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="type" maxOccurs="unbounded">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="ISHMasterDoc"/>
									<xs:enumeration value="ISHModule"/>
									<xs:enumeration value="ISHLibrary"/>
									<xs:enumeration value="ISHTemplate"/>
									<xs:enumeration value="ISHIllustration"/>
									<xs:enumeration value="ISHOutputFormat"/>
									<xs:enumeration value="ISHPublication"/>
									<xs:enumeration value="ISHPublicationOutput"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="selectionmode" type="selectionmode" use="optional" default="single" />
		<xs:attribute name="allowversionselect" type="boolean" use="optional" />
		<xs:attribute name="dialogmode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="link"/>
					<xs:enumeration value="hyperlink"/>
					<xs:enumeration value="select"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="assist" type="boolean" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="typetext">
		<xs:sequence>
			<xs:element name="valuelist" type="valuelist" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="assist" type="boolean" use="optional"/>
		<xs:attribute name="filter" type="boolean" use="optional"/>
		<xs:attribute name="useoperators" type="useoperatortype" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:group name="displaytype">
		<xs:choice>
			<!--EDIT-->
			<xs:element name="typecheckbox" type="typecheckbox" minOccurs="0"/>
			<xs:element name="typecondition" type="typecondition" minOccurs="0"/>
			<xs:element name="typedate" type="typedate" minOccurs="0"/>
			<xs:element name="typefile" type="typefile" minOccurs="0"/>
			<xs:element name="typelabel" type="typelabel" minOccurs="0"/>
			<xs:element name="typemultilinetext" type="typemultilinetext" minOccurs="0"/>
			<xs:element name="typenumeric" type="typenumeric" minOccurs="0" />
			<xs:element name="typeoptions" type="typeoptions" minOccurs="0" />
			<xs:element name="typepulldown" type="typepulldown" minOccurs="0"/>
			<xs:element name="typereference" type="typereference" minOccurs="0"/>
			<xs:element name="typetext" type="typetext" minOccurs="0"/>
		</xs:choice>
	</xs:group>
	<!-- ********** Events *****************************************************************************-->
	<xs:attributeGroup name="ishfrmevents">
		<xs:attribute name="load" type="xs:string" use="optional"/>
		<xs:attribute name="closing" type="xs:string" use="optional"/>
		<xs:attribute name="validating" type="xs:string" use="optional"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="ishfrmfieldevents">
		<xs:attribute name="load" type="xs:string" use="optional"/>
		<xs:attribute name="enter" type="xs:string" use="optional"/>
		<xs:attribute name="leave" type="xs:string" use="optional"/>
		<xs:attribute name="valuechanged" type="xs:string" use="optional"/>
		<xs:attribute name="validating" type="xs:string" use="optional"/>
	</xs:attributeGroup>
	<!-- ********** Forms/Tabs/Groups/Fields ***********************************************************-->
	<xs:complexType name="ishfrmfield">
		<xs:sequence minOccurs="0">
			<xs:group ref="header"/>
			<!-- Before condition evaluation elements can be added more than once -->
			<!-- after condition evaluation elements may be added only once -->
			<xs:group ref="displaytype" maxOccurs="unbounded"/>
			<!--TODO-->
			<xs:group ref="ishfrmfieldbehavior"/>
			<!-- Before condition evaluation elements can be added more than once -->
			<!-- after condition evaluation elements may be added only once -->
			<xs:element name="metadatafilteroperator" type="metadatafilteroperator" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="fulltextsearchoperator" type="fulltextsearchoperator" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="value" type="value" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="script" type="script" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:ID" use="optional"/>
		<xs:attribute name="ref" type="xs:IDREF" use="optional"/>
		<xs:attribute name="name" type="xs:string" use="optional"/>
		<xs:attribute name="ishfieldref" type="xs:Name" use="optional"/>
		<xs:attribute name="level" type="level" use="optional"/>
		<xs:attribute name="ishfielddatatype" type="ishfielddatatype" use="optional"/>
		<xs:attributeGroup ref="ishfrmfieldevents" />
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="ishfrmgroup">
		<xs:sequence minOccurs="0">
			<xs:group ref="header"/>
			<xs:element name="ishfrmfield" type="ishfrmfield" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="ref" type="xs:IDREF" use="optional"/>
		<xs:attributeGroup ref="condition"/>
		<xs:attribute name="id" type="xs:ID" use="optional"/>
		<xs:attribute name="expandstate" type="expandstate" use="optional" />
	</xs:complexType>
	<xs:complexType name="ishfrmtab">
		<xs:sequence minOccurs="0">
			<xs:group ref="header"/>
			<xs:choice minOccurs="1" maxOccurs="1">
				<xs:element name="ishfrmgroup" type="ishfrmgroup" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="ishfrmfield" type="ishfrmfield" minOccurs="0" maxOccurs="unbounded"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="ref" type="xs:IDREF" use="optional"/>
		<xs:attribute name="id" type="xs:ID" use="optional"/>
		<xs:attributeGroup ref="condition"/>
	</xs:complexType>
	<xs:complexType name="ishfrm">
		<xs:sequence>
			<xs:group ref="formheader"/>
			<xs:choice minOccurs="1" maxOccurs="1">
				<xs:element name="ishfrmtab" type="ishfrmtab" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="ishfrmgroup" type="ishfrmgroup" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="ishfrmfield" type="ishfrmfield" minOccurs="0" maxOccurs="unbounded"/>
			</xs:choice>
			<xs:element name="script" type="script" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="behavior" type="behavior" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:ID" use="required"/>
		<!-- Id is required => No conditions allowed -->
		<!--xs:attributeGroup ref="condition"/-->
		<xs:attribute name="width" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="height" type="xs:unsignedByte" use="optional"/>
		<xs:attributeGroup ref="ishfrmevents" />
	</xs:complexType>
	<xs:complexType name="ishfrmdef">
		<xs:sequence>
			<xs:element name="ishfrms" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ishfrm" type="ishfrm" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="ishfrmtabs" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ishfrmtab" type="ishfrmtab" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="ishfrmgroups" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ishfrmgroup" type="ishfrmgroup" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="ishfrmfields" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ishfrmfield" type="ishfrmfield" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="ishfrmvaluelists" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="valuelist" type="valuelist" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<!-- ********** Associations *****************************************-->
	<xs:complexType name="ishassociationdef">
		<xs:sequence>
			<xs:element name="ishfileextensionassociation" type="ishfileextensionassociation" minOccurs="0" maxOccurs="unbounded"></xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ishfileextensionassociation">
		<xs:attribute name="name" type="xs:string" use="required"/>
		<xs:attribute name="ishtemplate" type="xs:string" use="required"/>
	</xs:complexType>