Skip to content

Instantly share code, notes, and snippets.

@janis-veinbergs
Last active July 13, 2023 07:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save janis-veinbergs/ce3e2b694237b8f59aa0ebece97a56bd to your computer and use it in GitHub Desktop.
Save janis-veinbergs/ce3e2b694237b8f59aa0ebece97a56bd to your computer and use it in GitHub Desktop.
Power Apps PCF ControlManifest schema. Some undocumented elements also included found in the wild. Created from: https://learn.microsoft.com/en-us/power-apps/developer/component-framework/manifest-schema-reference/
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="manifest">
<xs:annotation>
<xs:documentation>
Manifest is the metadata file that defines a component. It is an XML file that describes:
- The namespace of the component.
- The kind of data it can be configured, either a field or a dataset.
- Any properties that can be configured in the application when the component is added.
- A list of resource files that the component needs.
- One of them must be a TypeScript web resource. This TypeScript must include a function that will instantiate an object. This implements an interface that exposes methods that are required for the component to work. This is called the component implementation library.
- The name of a TypeScript function in the component implementation library that will return an object that applies the required component interface.
When the user configures a custom component in a canvas app or a model-driven app, the data in the manifest filters out the available components so that only the valid components for the context are available for configuration. The properties defined in the manifest for a component are rendered as configuration fields so that the user configuring the component can specify values. These property values are then available to the component function at run time.
Power Apps Manifest Shema reference documented at: https://learn.microsoft.com/en-us/power-apps/developer/component-framework/manifest-schema-reference/
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="control" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Defines the component's namespace, version and display information. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:element name="data-set" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The dataset node in the component manifest represents a specific, configurable representation of a set of table records.
You can define multiple datasets in the manifest. The first dataset in the manifest is as the primary dataset. When configuring the multi dataset component, the primary dataset property always has name Items. All non-primary dataset properties will have a _Items suffix after the dataset name.
Certain features in the authoring panel will only apply to the primary dataset properties, such as data source selector, field selector, and view selector. To configure a non-primary dataset property, the maker needs to first import the data source to the app, then set the property value to that secondary data source. Property-set should be used for accessing columns in a non-primary dataset property.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="property-set">
<xs:annotation>
<xs:documentation>Defines an inner configuration within a dataset manifest node to allow you to explicitly configure a column of your dataset against a column of a given type from the table against which the dataset is configured.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Name of the column. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="display-name-key" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Used in customization screens as localized strings that describe the name of the property. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="description-key" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Used in customization screens as localized strings that describe the description of the property. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="of-type" type="PropertyType" use="optional">
<xs:annotation>
<xs:documentation>
Defines the data type of the property. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="required" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>
Indicates whether the property is required or not. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="of-type-group" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Name of the type-group as defined in manifest. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="usage" use="required">
<xs:annotation>
<xs:documentation>
The usage property identifies if the property is meant to represent a table column that the component can change (bound) or read-only values (input). Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="bound" />
<xs:enumeration value="input" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="description-key" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Defines the description of the property. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="display-name-key" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Defines the name of the property. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Name of the grid. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="cds-data-set-options" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Displays the Commandbar, ViewSelector, QuickFind if set to true. Available for: Model-driven apps</xs:documentation>
<xs:documentation>Example value: displayCommandBar:true;displayViewSelector:true;displayQuickFind:true</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The property node defines a specific, configurable piece of data that the component expects from the Microsoft Dataverse.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:annotation>
<xs:documentation>Used to define values for Enum type</xs:documentation>
</xs:annotation>
<xs:element name="value" minOccurs="0" maxOccurs="unbounded" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="display-name-key" type="xs:string" use="required" />
<xs:attribute name="description-key" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
UNDOCUMENTED, used in the wild by PeoplePicker powercat code component
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="default" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>
UNDOCUMENTED, used in the wild by PeoplePicker powercat code component
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Name of the property. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="display-name-key" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Used in the customization screens as localized strings that describes the name of the property. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="of-type" type="PropertyType" use="optional">
<xs:annotation>
<xs:documentation>
Defines the data type of the property. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="usage" use="required">
<xs:annotation>
<xs:documentation>
The usage property identifies if the property is meant to represent a column that the component can change (bound), read-only (input) or output values. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="bound" />
<xs:enumeration value="input" />
<xs:enumeration value="output" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="required" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>
Indicates whether the property is required or not. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="of-type-group" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Name of the type-group as defined in manifest. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="description-key" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Used in customization screens as localized strings that describe the description of the property. Available for: Model-driven and canvas apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="default-value" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
The default configuration value provided to the component. In model-driven apps, this property is only allowed on inputs since the bound parameters expect to have a column associated.. Available for: Model-driven apps
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="hidden" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>
UNDOCUMENTED property, used in the wild by power-drag-drop
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="resources" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The resources node in the component manifest refers to the resource files that component requires to implement it's visualization. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:element name="code" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Refers to the path where the resource files are located. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Place where the resource files are located. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="order" type="xs:unsignedInt" use="required">
<xs:annotation>
<xs:documentation>The order in which the resource files should load: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="css" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>CSS describes how code components are to be displayed on UI. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Relative path w.r.t manifest where CSS files are located. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="order" type="xs:unsignedInt" use="required">
<xs:annotation>
<xs:documentation>The order in which the CSS files should load. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="img" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The img web resource allows you to add images for the code components. Available for: Model-driven apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Relative path w.r.t manifest where the image files are located. Available for: Model-driven apps</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="resx" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The resx webresource is used to manage the localized strings you define. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Relative path w.r.t manifest where resx files are located.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="version" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The current version of the resx file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="platform-library" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The platform library to use as a resource. This element is used in the React controls &amp; platform libraries (Preview). Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Either React or Fluent. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="version" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The current version of the platform library. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="external-service-usage" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Indicates whether this control is using external service or not. If it is, set the enabled attribute flag as true and add the external service domain to the &lt;domain&gt; property. A control that uses any external service is a premium control and the end user will need a Power Apps license to open an app with a premium control. Available for: Canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="domain" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Specifies the domain within the external-service-usage element. Available for: Canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string"></xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="enabled" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="feature-usage" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The feature-usage element acts as a wrapper around the uses-feature elements, which themselves allow developers to declare which features their component wants to use. If there are no uses-feature elements defined, the feature-usage element is not required. Available for: Model-driven apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="uses-feature" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Device.captureAudio" />
<xs:enumeration value="Device.captureImage" />
<xs:enumeration value="Device.captureVideo" />
<xs:enumeration value="Device.getBarcodeValue" />
<xs:enumeration value="Device.getCurrentPosition" />
<xs:enumeration value="Device.pickFile" />
<xs:enumeration value="Utility" />
<xs:enumeration value="WebAPI" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="required" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property-dependencies" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines a group of property-dependencies. Available for: Canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="property-dependency" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A property dependency in the property-dependencies node. Defines dependency between two properties. Available for: Canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="input" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The name of the input property. Available for: Canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="output" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The name of the output property. Available for: Canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="required-for" use="required">
<xs:annotation>
<xs:documentation>Helps identify the property dependency requirement. Currently, the only supported value is schema. Available for: Canvas apps</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="schema" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="type-group" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The type-group node defines a set of types identified by a single name. This information can be used to identify the data types supported by a specific property. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="type" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The type in the type-group node defines the data type.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="PropertyType"></xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Name of the data type.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="event" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>UNDOCUMENTED element, but found to be used by power-drag-drop PCF component that enables custom events to be added by calling context.event.&lt;name&gt;()</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Name of the event, invoked by context.event.&lt;name&gt;()</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="display-name-key" type="xs:string" use="required">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="description-key" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="built-by" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>UNDOCUMENTED element, but found in ControlManifest.xml within solution when built with pac tool.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="version" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="namespace" type="LettersOrNumbers" use="required">
<xs:annotation>
<xs:documentation>Defines the object prototype of the component. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="constructor" type="LettersOrNumbers" use="required">
<xs:annotation>
<xs:documentation>A method for initializing the object. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="control-type" use="optional">
<xs:annotation>
<xs:documentation>Whether the control is a standard control or a React control. The value of virtual indicates a React control using platform React library. Virtual controls are a feature in public preview. Avaailable for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="standard" />
<xs:enumeration value="virtual" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="description-key" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Defines the description of the component that will be seen on the UI. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="display-name-key" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Defines the name of the control that is displayed on the UI. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="preview-image" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Image that will be used on the customization screens to show a preview of the component. Available for: Model-driven apps</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="version" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Defines the version of the component defined in Semantic Versioning. Available for: Model-driven and canvas apps</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="LettersOrNumbers">
<xs:annotation>
<xs:documentation>Letters or numbers only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[0-9a-zA-Z]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PropertyType">
<xs:annotation>
<xs:documentation>
The type-group has a limited support for canvas apps. When the type groups can easily resolve to a common type, the "most compatible" type (generally the least specific type) is chosen for the type of the given column. The resolvable type groupings are as follows:
- Strings: SingleLine.Text, Multiple, SingleLine.TextArea, SingleLine.Email, SingleLine.Phone, SingleLine.URL, SingleLine.Ticker.
- Numbers: Decimal, FP, Whole.None, Currency.
- Dates: DateAndTime.DateAndTime, DateAndTime.DateOnly.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Currency">
<xs:annotation>
<xs:documentation>Monetary values between -922,337,203,685,477 and 922,337,203,685,477 can be in this column.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="DateAndTime.DateAndTime">
<xs:annotation>
<xs:documentation>Displays date and time.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="DateAndTime.DateOnly">
<xs:annotation>
<xs:documentation>Displays date only.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Decimal">
<xs:annotation>
<xs:documentation>Up to 10 decimal points of precision can be used for values between -100,000,000,000 and -100,000,000,000 can be in this column.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Enum">
<xs:annotation>
<xs:documentation>Enumerated data type.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="FP">
<xs:annotation>
<xs:documentation>Up to 5 decimal points of precision can be used for values between -100,000,000,000 and -100,000,000,000 can be in this column.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Lookup.Simple">
<xs:annotation>
<xs:documentation>Allows for a single reference to a specific table. All custom lookups are this type.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Multiple">
<xs:annotation>
<xs:documentation>This column can contain up to 1,048,576 text characters.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="MultiSelectOptionSet">
<xs:annotation>
<xs:documentation>You can customize forms (main, quick create, and quick view) and email templates by adding choices columns. When you add choices column, you can specify multiple values that will be available for users to select. When users fill out the form they can select one, multiple, or all the values displayed in a drop-down list.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Object">
<xs:annotation>
<xs:documentation>Object data type. Can only be used with output properties.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="OptionSet">
<xs:annotation>
<xs:documentation>This column provides a set of options. Each option has a number value and label. When added to a form, this column displays a control for users to select only one option.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SingleLine.Email">
<xs:annotation>
<xs:documentation>This stores the string time in the format valid for Emails. Out-of-the-box Unified Interface controls automatically make them clickable links.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SingleLine.Phone">
<xs:annotation>
<xs:documentation>This stores the string time in the format valid for Phone. Out-of-the-box Unified Interface controls automatically make them clickable links.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SingleLine.Text">
<xs:annotation>
<xs:documentation>This option simply displays text.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SingleLine.TextArea">
<xs:annotation>
<xs:documentation>This format option can be used to display multiple lines of text. But with a limit of 4000 characters, the Multiple Lines of Text column is a better choice if large amounts of text are expected.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SingleLine.Ticker">
<xs:annotation>
<xs:documentation>This stores the string time in the format valid for Ticker. Out-of-the-box Unified Interface controls automatically make them clickable links.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SingleLine.URL">
<xs:annotation>
<xs:documentation>The text expected to provides a hyperlink to open the page specified. Out-of-the-box Unified Interface controls automatically prepend "https://" to input values that does not begin with a valid protocol . Only HTTP, HTTPS, FTP , FTPS, OneNote and TEL protocols are expected in this column.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="TwoOptions">
<xs:annotation>
<xs:documentation>This column provides two options. Each option has a number value of 0 or 1 corresponding to a false or true value. Each option also has a label so that true or false values can be represented as "Yes" and "No", "Hot" and "Cold", "On" and "Off" or any pair of labels you want to display.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Whole.None">
<xs:annotation>
<xs:documentation>This option simply displays a number.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment