Skip to content

Instantly share code, notes, and snippets.

@lyle-janrain
Created July 31, 2013 21:07
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 lyle-janrain/542f76bee25fd41227d8 to your computer and use it in GitHub Desktop.
Save lyle-janrain/542f76bee25fd41227d8 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="flow">
<xs:annotation>
<xs:appinfo xml:lang="en">Configuration Note</xs:appinfo>
<xs:documentation xml:lang="en">
The flow is the place all things capture widget live
</xs:documentation>
<xs:appinfo xml:lang="fr">Note de Configuration</xs:appinfo>
<xs:documentation xml:lang="fr">
Salut!
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string">
<xs:annotation>
<xs:documentation>the name of this flow, must be 1 word and unique to this application id</xs:documentation>
</xs:annotation>
</xs:element>
<!-- version is not needed for now -->
<!--xs:element name="version" type="xs:string">
<xs:annotation>
<xs:documentation>the version is...</xs:documentation>
</xs:annotation>
</xs:element-->
<xs:element name="defaultScreen" type="xs:string">
<xs:annotation>
<xs:documentation>the default screen tells the widget where to start. the name of a screen must be here to properly validate.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="fields">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="inputText" type="InputTextField"/>
<xs:element name="inputPassword" type="InputPasswordField"/>
<xs:element name="inputEmail" type="InputEmailField"/>
<xs:element name="buttonSubmit" type="ButtonSubmitField"/>
<xs:element name="textarea" type="TextareaField"/>
<xs:element name="select" type="SelectField"/>
<xs:element name="addressEdit" type="AddressEditField"/>
<xs:element name="addressDisplay" type="AddressDisplayField"/>
<xs:element name="fullNameEdit" type="FullNameEditField"/>
<xs:element name="fullNameDisplay" type="FullNameDisplayField"/>
<xs:element name="dateEdit" type="DateEditField"/>
<xs:element name="dateDisplay" type="DateDisplayField"/>
</xs:choice>
</xs:complexType>
<xs:key name="FieldNameKey">
<xs:annotation>
<xs:documentation xml:lang="en">
Field names must be present and unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="*"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref name="ValitionMatchRef" refer="FieldNameKey">
<xs:annotation>
<xs:documentation xml:lang="en">
Fields referenced in &lt;match&gt; validations must be defined.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="*/validation/match"/>
<xs:field xpath="field"/>
</xs:keyref>
</xs:element>
<xs:element name="screens">
<xs:annotation> <xs:documentation xml:lang="en"> 1 or more screens are defined here </xs:documentation> </xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="screen" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="forms">
<xs:complexType>
<xs:sequence>
<xs:element name="form" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="action" type="xs:string"/>
<xs:element name="authField" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="field" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element type="xs:string" name="i18nStrings"/>
<xs:element type="translationsType" name="translations"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--<xs:element name="errorMessages">-->
<xs:element name="messages">
<xs:annotation> <xs:documentation xml:lang="en">
Optionally some screens will display some sort of error message.
TODO: how are these triggered?
</xs:documentation> </xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="message" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:attribute name='name' use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="screen">
<xs:complexType>
<xs:all>
<!--<xs:element ref="errorMessages" minOccurs="0"/>-->
<xs:element ref="messages" minOccurs="0"/>
<xs:element ref="next" minOccurs="0"/>
<xs:element ref="screenConditionals" minOccurs="0"/>
<xs:element name="isModal" type="xs:boolean"/>
<xs:element name="source" type="sourceType"/>
<xs:element name="layout" type="xs:string"/>
<xs:element name="dataType" minOccurs="0" type="xs:string"/>
<xs:element name="type" minOccurs="0" type="xs:string"/>
<xs:element name="validateOnRender" minOccurs="0" type="xs:boolean"/>
<xs:element name="hasUserData" minOccurs="0" type="xs:boolean"/>
<xs:element name="modalLoadOnLoad" minOccurs="0" type="xs:boolean"/>
</xs:all>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- this has conditionals too -->
<xs:element name="next">
<xs:complexType mixed="true">
<xs:all>
<xs:element ref="conditional"/>
</xs:all>
<!--<xs:attribute name="type" type="sourceType" use="required"/>-->
</xs:complexType>
</xs:element>
<xs:simpleType name="sourceType">
<xs:restriction base="xs:string">
<xs:enumeration value="client"/>
<xs:enumeration value="server"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="screenConditionals">
<xs:complexType mixed="true">
<xs:all>
<xs:element ref="conditional"/>
</xs:all>
<!--<xs:attribute name="type" type="sourceType" use="required"/>-->
</xs:complexType>
</xs:element>
<!--conditional placeholder -->
<xs:element name="conditional" type="xs:string"/>
<!--odds and ends -->
<xs:complexType name="translationsType">
<xs:sequence>
<xs:element type="xs:string" name="en-US"/>
</xs:sequence>
</xs:complexType>
<!-- BEGIN field validation -->
<xs:complexType name="Validations">
<xs:annotation>
<xs:documentation xml:lang="en">
All possible validations. Not actually to be used in field definitions. The restricted types
StringValidations, DateValidations, CheckboxValidations, and PhotoValidations should be used
instead.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="required" type="ValidationRequired" minOccurs="0"/>
<xs:element name="unique" type="ValidationUnique" minOccurs="0"/>
<xs:element name="isDate" type="ValidationIsDate" minOccurs="0"/>
<xs:element name="minYearsAgo" type="ValidationMinYearsAgo" minOccurs="0"/>
<xs:element name="minLength" type="ValidationMinLength" minOccurs="0"/>
<xs:element name="maxLength" type="ValidationMaxLength" minOccurs="0"/>
<xs:element name="match" type="ValidationMatch" minOccurs="0"/>
<xs:element name="format" type="ValidationFormat" minOccurs="0"/>
<xs:element name="validFileTypes" type="ValidationValidFileTypes" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="StringValidations">
<xs:annotation>
<xs:documentation xml:lang="en">
Validations for string-valued fields.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="required" type="ValidationRequired" minOccurs="0"/>
<xs:element name="unique" type="ValidationUnique" minOccurs="0"/>
<xs:element name="minLength" type="ValidationMinLength" minOccurs="0"/>
<xs:element name="maxLength" type="ValidationMaxLength" minOccurs="0"/>
<xs:element name="match" type="ValidationMatch" minOccurs="0"/>
<xs:element name="format" type="ValidationFormat" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="DateValidations">
<xs:annotation>
<xs:documentation xml:lang="en">
Validations for date selection fields.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="required" type="ValidationRequired" minOccurs="0"/>
<xs:element name="isDate" type="ValidationIsDate" minOccurs="0"/>
<xs:element name="minYearsAgo" type="ValidationMinYearsAgo" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="PhotoValidations">
<xs:annotation>
<xs:documentation xml:lang="en">
Validations for photo management fields.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="validFileTypes" type="ValidationValidFileTypes" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="CheckboxValidations">
<xs:annotation>
<xs:documentation xml:lang="en">
Validations for checkbox-type fields.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="required" type="ValidationRequired" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="ValidationRequired">
<xs:annotation>
<xs:documentation xml:lang="en">
The field requires a value. For string-valued fields the value cannot be blank.
For checkbox fields the box must be checked.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationUnique">
<xs:annotation>
<xs:documentation xml:lang="en">
The field's value must be unique across all users.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationIsDate">
<xs:annotation>
<xs:documentation xml:lang="en">
The field must contain a valid date (e.g. not 2012-02-30).
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationMinYearsAgo">
<xs:annotation>
<xs:documentation xml:lang="en">
An upper-bound on a (date-valued) field's value.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="threshold" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation xml:lang="en">
The number of years since the most recent acceptable date.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationMinLength">
<xs:annotation>
<xs:documentation xml:lang="en">
A lower-bound on the length of a (string-valued) field's value.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="threshold" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation xml:lang="en">
The minimum length of the field's string value.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationMaxLength">
<xs:annotation>
<xs:documentation xml:lang="en">
An upper-bound on the length of a (string-valued) field's value.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="threshold" type="xs:nonNegativeInteger">
<xs:annotation>
<xs:documentation xml:lang="en">
The maximum length of the field's string value.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationMatch">
<xs:annotation>
<xs:documentation xml:lang="en">
The field's value must be equal to another field's.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<!-- field reference must be validated at a higher level -->
<xs:element name="field" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">
The other field which must have the same value.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationFormat">
<xs:annotation>
<xs:documentation xml:lang="en">
Restricts the format of a (string-valued) field's value.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="name">
<xs:simpleType>
<xs:annotation>
<xs:documentation xml:lang="en">
The name of the format the field's value must have.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="email"/>
<xs:enumeration value="alpha"/>
<xs:enumeration value="alphaExtended"/>
<xs:enumeration value="alphaExtendedSpaces"/>
<xs:enumeration value="alphaNumeric"/>
<xs:enumeration value="alphaNumericExtended"/>
<xs:enumeration value="i18nAlphaNumeric"/>
<xs:enumeration value="numeric"/>
<xs:enumeration value="numericReal"/>
<xs:enumeration value="phone"/>
<xs:enumeration value="phoneInternational"/>
<xs:enumeration value="zipCode"/>
<xs:enumeration value="zipCode+4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidationValidFileTypes">
<xs:annotation>
<xs:documentation xml:lang="en">
Restricts the file-types of files uploaded with the field.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="mimeTypes">
<xs:complexType>
<xs:annotation>
<xs:documentation xml:lang="en">
The set of acceptable file types.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="mimeType" maxOccurs="unbounded">
<xs:simpleType>
<xs:annotation>
<xs:documentation xml:lang="en">
A MIME file type.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="image/jpeg"/>
<xs:enumeration value="image/png"/>
<xs:enumeration value="image/gif"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="ValidationValidFileTypesUniqueness">
<xs:annotation>
<xs:documentation xml:lang="en">
MIME types can not be repeated.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="mimeType"/>
<xs:field xpath="."/>
</xs:unique>
</xs:element>
<xs:group ref="ValidationModel"/>
</xs:sequence>
</xs:complexType>
<xs:group name="ValidationModel">
<xs:annotation>
<xs:documentation xml:lang="en">
Properties common to all validations.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="errorMessage" type="xs:string" maxOccurs="1">
<xs:annotation>
<xs:documentation xml:lang="en">
A message to display to the user upon validation failure.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:group>
<!-- END field validation -->
<xs:complexType name="Field">
<xs:attribute name="name" type="xs:NCName" use="required"/>
</xs:complexType>
<!-- html field definitions -->
<!--InputText InputPassword and InputEmail fields have similar baseline default requirements-->
<xs:complexType name="InputTextField">
<xs:complexContent>
<xs:extension base="Field">
<xs:group ref="FieldCommonElementsGroup"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InputPasswordField">
<xs:complexContent>
<xs:extension base="Field">
<xs:group ref="FieldCommonElementsGroup"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InputEmailField">
<xs:complexContent>
<xs:extension base="Field">
<xs:group ref="FieldCommonElementsGroup"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--tuning what is required in each of the following field groups gives the user the simplest path
to create a functional field. TODO: needs work. All used vs sequences to allow any order and stay
1.0 -->
<xs:group name="ButtonFieldGroup">
<xs:all>
<xs:element name="value" type="FieldValue"/>
<xs:element name="htmlAttributes" type="FieldHtmlAttributes" minOccurs="0"/>
<xs:element name="htmlElementContent" type="FieldHtmlElementContent" minOccurs="0"/>
<xs:element name="modify" type="FieldModify" minOccurs="0"/>
</xs:all>
</xs:group>
<xs:group name="SelectFieldGroup">
<xs:all>
<xs:element name="placeholder" type="FieldPlaceholder"/>
<xs:element name="publicPrivateToggle" type="FieldPublicPrivateToggle" default="false"/>
<xs:element name="label" type="FieldLabel"/>
<xs:element name="captureSchemaPath" type="CaptureSchemaPath"/>
<xs:element name="options" type="FieldOptions" minOccurs="1"/>
<xs:element name="validation" type="StringValidations" minOccurs="0"/>
</xs:all>
</xs:group>
<xs:complexType name="TextareaField">
<xs:complexContent>
<xs:extension base="Field">
<xs:group ref="TextareaFieldGroup"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:group name="TextareaFieldGroup">
<xs:all>
<xs:element name="rows" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger"/>
</xs:simpleType>
</xs:element>
<xs:element name="publicPrivateToggle" type="FieldPublicPrivateToggle" default="false"/>
<xs:element name="label" type="FieldLabel" minOccurs="0"/>
<xs:element name="captureSchemaPath" type="CaptureSchemaPath"/>
<xs:element name="tip" type="FieldTip" minOccurs="0"/>
<xs:element name="validation" type="StringValidations" minOccurs="0"/>
<xs:element name="placeholder" type="FieldPlaceholder" minOccurs="0"/>
<xs:element name="value" type="FieldValue" minOccurs="0"/>
</xs:all>
</xs:group>
<xs:group name="FieldCommonElementsGroup">
<xs:all >
<xs:element name="disablePublicPrivate" type="FieldDisablePublicPrivate" minOccurs="0" default="false"/>
<xs:element name="publicPrivateToggle" type="FieldPublicPrivateToggle" minOccurs="0" default="false"/>
<xs:element name="placeholder" type="FieldPlaceholder" minOccurs="0"/>
<xs:element name="label" type="FieldLabel" minOccurs="0"/>
<!--this and a field name in the value of fields could be abstracted away -->
<xs:element name="displaySavedValue" type="FieldDisplaySavedValue" minOccurs="0"/>
<xs:element name="modify" type="FieldModify" minOccurs="0">
<xs:annotation>
<xs:documentation>[out of scope? TODO: need more context on this one.][out of scope? TODO: need more context on this one.]</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" type="FieldValue" minOccurs="0"/>
<xs:element name="valueInLocalStorage" type="FieldValueInLocalStorage" minOccurs="0"/>
<xs:element name="tip" type="FieldTip" minOccurs="0"/>
<xs:element name="htmlAttributes" type="FieldHtmlAttributes" minOccurs="0"/>
<xs:element name="captureSchemaPath" type="CaptureSchemaPath"/>
<xs:element name="engageSchemaPath" type="EngageSchemaPath" minOccurs="0"/>
<xs:element name="validation" type="StringValidations" minOccurs="0"/>
<xs:element name="htmlElementContent" type="FieldHtmlElementContent" minOccurs="0"/>
</xs:all>
</xs:group>
<xs:complexType name="ButtonSubmitField">
<xs:complexContent>
<xs:extension base="Field">
<xs:group ref="ButtonFieldGroup"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SelectField">
<xs:complexContent>
<xs:extension base="Field">
<xs:group ref="SelectFieldGroup" minOccurs="0"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AddressEditField">
<xs:complexContent>
<xs:extension base="Field">
<xs:all>
<xs:element name="label" type="xs:token" minOccurs="0"/>
<xs:element name="showPublicPrivateToggle" type="xs:boolean" minOccurs="0"/>
<xs:element name="subfields">
<xs:complexType>
<xs:all>
<xs:element name="country" type="StringEditSubfield"/>
<xs:element name="streetAddress1" type="StringEditSubfield"/>
<xs:element name="streetAddress2" type="StringEditSubfield"/>
<xs:element name="city" type="StringEditSubfield"/>
<xs:element name="regionCode" type="StringEditSubfield"/>
<xs:element name="postalCode" type="StringEditSubfield"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AddressDisplayField">
<xs:complexContent>
<xs:extension base="Field">
<xs:all>
<xs:element name="label" type="xs:token" minOccurs="0"/>
<xs:element name="subfields">
<xs:complexType>
<xs:all>
<xs:element name="country" type="StringDisplaySubfield"/>
<xs:element name="streetAddress1" type="StringDisplaySubfield"/>
<xs:element name="streetAddress2" type="StringDisplaySubfield"/>
<xs:element name="city" type="StringDisplaySubfield"/>
<xs:element name="regionCode" type="StringDisplaySubfield"/>
<xs:element name="postalCode" type="StringDisplaySubfield"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FullNameEditField">
<xs:complexContent>
<xs:extension base="Field">
<xs:all>
<xs:element name="label" type="xs:string" minOccurs="0"/>
<xs:element name="showPublicPrivateToggle" type="xs:boolean" minOccurs="0"/>
<xs:element name="subfields">
<xs:complexType>
<xs:all>
<xs:element name="givenName" type="StringEditSubfield"/>
<xs:element name="middleName" type="StringEditSubfield"/>
<xs:element name="familyName" type="StringEditSubfield"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FullNameDisplayField">
<xs:complexContent>
<xs:extension base="Field">
<xs:all>
<xs:element name="label" type="xs:string" minOccurs="0"/>
<xs:element name="subfields">
<xs:complexType>
<xs:all>
<xs:element name="givenName" type="StringDisplaySubfield"/>
<xs:element name="middleName" type="StringDisplaySubfield"/>
<xs:element name="familyName" type="StringDisplaySubfield"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DateEditField">
<xs:complexContent>
<xs:extension base="Field">
<xs:all>
<xs:element name="label" type="xs:string" minOccurs="0"/>
<xs:element name="showPublicPrivateToggle" type="xs:boolean" minOccurs="0"/>
<xs:element name="captureSchemaPath" type="CaptureSchemaPath"/>
<xs:element name="validation" type="DateValidations" minOccurs="0"/>
<xs:element name="subfields" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="year" type="PlaceholderOnlySubfield"/>
<xs:element name="month" type="PlaceholderOnlySubfield"/>
<xs:element name="day" type="PlaceholderOnlySubfield"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DateDisplayField">
<xs:complexContent>
<xs:extension base="Field">
<xs:all>
<xs:element name="label" type="xs:string" minOccurs="0"/>
<xs:element name="captureSchemaPath" type="CaptureSchemaPath"/>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="StringEditSubfield">
<xs:all>
<xs:element name="captureSchemaPath" type="CaptureSchemaPath"/>
<xs:element name="placeholder" type="FieldPlaceholder" minOccurs="0"/>
<xs:element name="defaultValue" type="xs:token" minOccurs="0"/>
<xs:element name="validation" type="StringValidations" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="StringDisplaySubfield">
<xs:all>
<xs:element name="captureSchemaPath" type="CaptureSchemaPath"/>
<xs:element name="defaultValue" type="xs:token" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:complexType name="PlaceholderOnlySubfield">
<xs:all>
<xs:element name="placeholder" type="FieldPlaceholder" minOccurs="0"/>
</xs:all>
</xs:complexType>
<!--field child elements -->
<xs:complexType name="FieldDisablePublicPrivate">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldPubliPrivateToggle">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldPlaceholder">
<xs:simpleContent>
<xs:extension base="xs:token"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldLabel">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldDisplaySavedValue">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldValue">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldValueInLocalStorage">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldTip">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FieldPublicPrivateToggle">
<xs:simpleContent>
<xs:extension base="xs:boolean"/>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="EngageSchemaPath">
<xs:restriction base="xs:string">
<xs:pattern value="[_A-Za-z0-9]+(\.[_A-Za-z0-9]+)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CaptureSchemaPath">
<xs:restriction base="xs:string">
<xs:pattern value="[_A-Za-z0-9]+(\.[_A-Za-z0-9]+)*"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="FieldHtmlAttributes">
<xs:all>
<xs:element name="class" type="FieldClass"/>
</xs:all>
</xs:complexType>
<xs:complexType name="FieldHtmlElementContent" mixed="true">
<xs:annotation>
<xs:documentation>put any raw HTML within this block to be rendered within this element</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any processContents="skip"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="FieldClass">
<xs:restriction base="xs:token">
<xs:pattern value="(([A-Za-z][0-9A-Za-z_]*)[ ]*)*"/>
</xs:restriction>
</xs:simpleType>
<!-- options for select -->
<xs:complexType name="FieldOptions">
<xs:sequence>
<xs:element name="option" type="FieldOption" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FieldOption">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="disabled" type="xs:string" default="string" use="optional"/>
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- out a scope -->
<xs:complexType name="FieldModify">
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment