XRX/术语编辑器
外观
< XRX
您想要一个工具来管理您组织特定的业务术语,包括定义、缩略语、同义词、更广泛/更狭隘的术语、参见术语、定义来源、审批历史记录、版本以及与 ISO/IEC 11179 数据元素的可追溯性和映射。
创建一个工具,使用类似于 W3C 简单知识组织 SKOS 草案标准的词汇表来管理单个业务术语。 在每个术语的 eXist 集合中使用一个 XML 文件,并在创建每个术语时让服务器分配一个 ID 号。 允许每个术语属于一个同义词集。 我们将每个术语与更广泛的术语相关联,并使用 XQuery 报告推断出更狭隘的术语。
为了构建词汇表,我们可以为每个术语创建一个 XML 模式,并生成一个 XForms 应用程序来管理术语数据。 然后,我们可以手动编辑生成的表单以添加特定功能。
<Term>
<id/>
<TermName/>
<Acronym/>
<SynonymID/>
<Definition/>
<SeeAlso/>
<Broader/>
<PrimarySourceCode/>
<PrimarySourceOtherText/>
<Approvals>
<ApprovalStatusCode/>
<AssignedToCode/>
<ApprovedByCode/>
<ApprovalDate/>
</Approvals>
<GroupStarredItemIndicator/>
<ProjectCode/>
<ClassifierCode/>
<Tag/>
<TermNoteText/>
<DataElement>
<DataElementIndicator/>
<DataElementDerivedIndicator/>
<DataElementDerivationRuleText/>
<DataElementIdentifierIndicator/>
<DataElementEnumerationsText/>
<DataElementValidationRulesText/>
<DataElementName/>
</DataElement>
</Term>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Term">
<xs:annotation>
<xs:documentation>A single business term in organization specific business glossary. v0.06</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="id">
<xs:annotation>
<xs:documentation>The term identifier. Usually a small integer assigned upon creation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TermName" type="xs:string">
<xs:annotation>
<xs:documentation>The name of a term in the glossary.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Acronym" minOccurs="0">
<xs:annotation>
<xs:documentation>Optional acronym or abbreviation if used for the term.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SynonymID" minOccurs="0">
<xs:annotation>
<xs:documentation>A pointer to a synonym set. Each synonym set contains a list of approximately equivalent terms and one of those terms is a preferred term.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Definition">
<xs:annotation>
<xs:documentation>A short, precise, non-circular (you cannot say a widget is a widget) definition for this term that clearly differentiates this term from other terms.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1000"/>
<xs:minLength value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SeeAlso" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Other terms related to this term other that synonyms. May be hyperlinked.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Broader" minOccurs="0">
<xs:annotation>
<xs:documentation>A concept that is more general in meaning.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PrimarySourceCode" type="PrimarySourceCodeType" minOccurs="0">
<xs:annotation>
<xs:documentation>The primary source of the definition.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PrimarySourceOtherText" minOccurs="0">
<xs:annotation>
<xs:documentation>A text description of the primary source if it is not in one of the PrimarySourceCode. You must have a other text if PrimarySourceCode is 'other'</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Approvals" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="ApprovalStatusCode" minOccurs="0">
<xs:annotation>
<xs:documentation>An approval status such as draft, assigned to review team or approved.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="initial-draft"/>
<xs:enumeration value="assigned-to-review-team"/>
<xs:enumeration value="project-approved"/>
<xs:enumeration value="obsolete"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AssignedToCode" minOccurs="0">
<xs:annotation>
<xs:documentation>The person (BA) that this term is assigned to faciliatate approval. A code table is used to select the person's name.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Alice"/>
<xs:enumeration value="Ann"/>
<xs:enumeration value="Bob"/>
<xs:enumeration value="John"/>
<xs:enumeration value="Fred"/>
<xs:enumeration value="Peg"/>
<xs:enumeration value="Sue"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ApprovedByCode" minOccurs="0">
<xs:annotation>
<xs:documentation>Name of the person in the business unit that approved this data element.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="250"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ApprovalDate" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>The date the data element was approved.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GroupStarredItemIndicator" minOccurs="0">
<xs:annotation>
<xs:documentation>An indication that this item is of interest to a specific user.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ProjectCode" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The projects that this term is associated with.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ClassifierCode" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A code used to filter data elements. The user interface is a selection list that reads an external code table of filters.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Adjust"/>
<xs:enumeration value="Entity"/>
<xs:enumeration value="IRS"/>
<xs:enumeration value="Legal"/>
<xs:enumeration value="MM"/>
<xs:enumeration value="Process"/>
<xs:enumeration value="Product"/>
<xs:enumeration value="Program-Project"/>
<xs:enumeration value="System"/>
<xs:enumeration value="Technical"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Tag" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A keyword associated with this term.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TermNoteText" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Any additional notes about this term. Keep your definitions short by using this text area.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataElement">
<xs:complexType>
<xs:sequence>
<xs:element name="DataElementIndicator">
<xs:annotation>
<xs:documentation>Set to true if this is a formal data elment that should be registered by the metadata registry.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataElementDerivedIndicator" minOccurs="0">
<xs:annotation>
<xs:documentation>An indication that the element is derived from other data elements.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataElementDerivationRuleText" minOccurs="0">
<xs:annotation>
<xs:documentation>A textual description of the rule to derive this data element. Use names of other data elements if possible. This field is required if the DataElementDerivedIndicator is true.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataElementIdentifierIndicator" minOccurs="0">
<xs:annotation>
<xs:documentation>An indication that this data element identifies an instance within an indetification scheme.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataElementEnumerationsText" minOccurs="0">
<xs:annotation>
<xs:documentation>A textual description of all the data element enumerations including codes, ranges and definitions with distinction definitions for each code and range of codes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataElementValidationRulesText" minOccurs="0">
<xs:annotation>
<xs:documentation>A textual description of any validation rules used to check this data element.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataElementName" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The ISO name (namespace prefix, ObjectPropertyTerm) of a data element in a metadata registry.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="DataElementType">
<xs:sequence/>
</xs:complexType>
<xs:simpleType name="PrimarySourceCodeType">
<xs:restriction base="xs:string">
<xs:enumeration value="enterprise-glossary"/>
<xs:enumeration value="sales-glossary"/>
<xs:enumeration value="hr-glossary"/>
<xs:enumeration value="other"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
这是一个 XQuery,当它使用 new=true 或 id=123 的参数运行时,会生成一个 XForms 应用程序。 它需要与 new-instance.xml 位于同一个文件夹中,并且需要一个 save.xq 和一个 update.xq 来分别完成保存新实例(分配 ID)和更新现有实例的工作。 update.xq 将负责版本控制和存档旧值。 更新脚本还可以负责创建谁在何时更改了哪些文件的日志文件。
注意:我还没有修复它以使用批准和数据元素容器的新的路径名。
xquery version "1.0";
declare namespace exist = "http://exist.sourceforge.net/NS/exist";
declare namespace system="http://exist-db.org/xquery/system";
declare namespace request="http://exist-db.org/xquery/request";
import module namespace cms = "http://cms.metadata.dmccreary.com" at "/db/mdr/cms/cms-module.xq";
declare option exist:serialize "method=xhtml media-type=text/xml indent=yes";
let $new := request:get-parameter('new', '')
let $id := request:get-parameter('id', '')
let $form := 'Glossary Editor'
let $form-version := '0.08'
return
(: check for required parameters :)
if (not($new or $id))
then (
<error>
<message>Parameter "new" and "id" are both missing. One of these two arguments is required for this web service.</message>
</error>)
else (
let $server-port := substring-before(request:get-url(), '/exist/rest/db/')
let $collection := '/db/mdr/glossaries/data/pace/'
(: put in the appropriate file name :)
let $file := if ($new)
then ('new-instance.xml')
else ( concat( $server-port, '/exist/rest/', $collection, $id, '.xml'))
return
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ev="http://www.w3.org/2001/xml-events" >
<head>
<title>{$form}</title>
{cms:import-css()}
<link rel="stylesheet" type="text/css" href="../../resources/css/xforms-global.css"/>
<link rel="stylesheet" type="text/css" href="../../resources/css/xrx-xforms.css"/>
<link rel="stylesheet" type="text/css" href="local-xform.css"/>
<xf:model>
<xf:instance xmlns="" id="my-term" src="{$file}"/>
<xf:bind nodeset="instance('my-term')/TermName" required="true()"/>
<xf:bind nodeset="instance('my-term')/Definition" required="true()"/>
<xf:bind nodeset="instance('my-term')/ApprovalDate" type="xs:date"/>
<!-- these do not work since the form will not submit with a null date -->
<xf:bind nodeset="instance('my-term')/ApprovalDate" required="false()" nillable="true()"/>
<xf:bind nodeset="instance('my-term')/GroupStarredItemIndicator" type="xs:boolean"/>
<xf:bind nodeset="instance('my-term')/DataElement/DataElementIndicator" type="xs:boolean"/>
<xf:bind nodeset="instance('my-term')/DataElement/DataElementIdentifierIndicator" type="xs:boolean"/>
<xf:bind nodeset="instance('my-term')/DataElement/DataElementDerivedIndicator" type="xs:boolean"/>
<xf:bind nodeset="instance('my-term')/GroupStarredItemIndicator" required="false()"/>
<!-- these are used to bind to conditional views or triggers-->
<xf:instance xmlns="" id="views">
<data>
<approved/>
<synonym-delete-trigger/>
<see-also-delete-trigger/>
<broader-delete-trigger/>
<narrower-delete-trigger/>
<tag-delete-trigger/>
<other-source/>
<data-element/>
<data-element-derived/>
</data>
</xf:instance>
<!-- only display the delete triggers if there is more than one item on the list -->
<xf:bind nodeset="instance('my-term')/PreferredTermIndicator" type="xs:boolean"/>
<xf:bind id="approved" nodeset="instance('views')/approved" relevant="instance('my-term')/ApprovalStatusCode='program-approved'"/>
<xf:bind id="synonym-delete-trigger" nodeset="instance('views')/synonym-delete-trigger" relevant="count(instance('my-term')/Synonym) > 1"/>
<xf:bind id="see-also-delete-trigger" nodeset="instance('views')/see-also-delete-trigger" relevant="count(instance('my-term')/SeeAlso) > 1"/>
<xf:bind id="broader-delete-trigger" nodeset="instance('views')/broader-delete-trigger" relevant="count(instance('my-term')/Broader) > 1"/>
<xf:bind id="narrower-delete-trigger" nodeset="instance('views')/narrower-delete-trigger" relevant="count(instance('my-term')/Narrower) > 1"/>
<xf:bind id="tag-delete-trigger" nodeset="instance('views')/tag-delete-trigger" relevant="count(instance('my-term')/tag) > 1"/>
<xf:bind id="other-source" nodeset="instance('views')/other-source" relevant="instance('my-term')/PrimarySourceCode='other' "/>
<xf:bind id="data-element" nodeset="instance('views')/data-element" relevant="instance('my-term')/DataElementIndicator='true' "/>
<xf:bind id="data-element-derived" nodeset="instance('views')/data-element-derived" relevant="instance('my-term')/DataElementDerivedIndicator='true' "/>
{if ($new='true')
then
<xf:bind nodeset="instance('my-term')/ApprovalDate" calculate="substring(now(), 1, 10)"/>
else ()}
<!-- code tables -->
<xf:instance xmlns="" id="code-tables" src="code-tables.xq"/>
<xf:submission id="save" method="post" action="{if ($new='true') then ('save-new.xq') else ('update.xq')}" instance="my-term" replace="all"/>
<xf:submission id="echo-test" method="post" action="{$server-port}/exist/rest/db/mdr/xqueries/echo-test.xq" instance="my-term" replace="all"/>
</xf:model>
</head>
<body>
{cms:header()}
<a class="breadcrumb" href="../../index.xhtml">Metadata Registry</a> >
<a class="breadcrumb" href="../index.xhtml">Glossary Manager</a>
<h1>{if ($new='true') then ('Create New') else ('Update')} Project Glossary Term</h1>
<p>{$form} - {$form-version} - File: {$file}</p>
<xf:group ref="instance('my-term')">
<xf:label class="group-label">Glossary Term</xf:label>
<xf:input ref="TermName" class="TermName">
<xf:label>Term Name:</xf:label>
<xf:hint>The name of a term in the glossary.</xf:hint>
</xf:input>
<xf:input ref="Acronym">
<xf:label>Acronym:</xf:label>
<xf:hint>The acronym or abbreviation for this term.</xf:hint>
</xf:input>
<xf:input ref="SynonymID">
<xf:label>Synonym Set ID:</xf:label>
<xf:hint>A link to the Synonym Set Editor.</xf:hint>
</xf:input>
<xf:textarea class="Definition" ref="Definition">
<xf:label>Definition:</xf:label>
<xf:hint>A short, precise, non-circular definition for this term that clearly differentiates this term
from other terms.</xf:hint>
</xf:textarea>
<xf:group>
<xf:label class="group-label">See Also</xf:label>
<xf:repeat id="see-also-repeat" nodeset="instance('my-term')/SeeAlso">
<xf:input ref="." class="SeeAlso inline-delete" id="see-also-input">
<xf:label>See Also (non-synonym):</xf:label>
<xf:hint>A related term in the glossary that is not a synonym.</xf:hint>
</xf:input>
<xf:trigger bind="see-also-delete-trigger" class="inline-delete">
<xf:label>Delete See Also</xf:label>
<xf:delete nodeset="instance('my-term')/SeeAlso[index('see-also-repeat')]" ev:event="DOMActivate"/>
</xf:trigger>
</xf:repeat>
<xf:trigger>
<xf:label>Insert New "See Also" Term</xf:label>
<xf:action ev:event="DOMActivate">
<xf:insert nodeset="instance('my-term')/SeeAlso" at="last()" position="after"/>
<xf:setvalue ref="instance('my-term')/SeeAlso[index('see-also-repeat')]" value=""/>
<xf:setfocus control="see-also-input"/>
</xf:action>
</xf:trigger>
</xf:group>
<xf:input ref="instance('my-term')/Broader">
<xf:label>Broader Term:</xf:label>
<xf:hint>A term that is more general in meaning.</xf:hint>
</xf:input>
<xf:group>
<xf:label class="group-label">Definition Sources</xf:label>
<xf:repeat id="source-repeat" nodeset="instance('my-term')/PrimarySourceCode">
<xf:select1 ref="." class="inline-delete" id="source-select">
<xf:label>Definition Source:</xf:label>
<xf:hint>The source of information about the term and its defintion.</xf:hint>
<xf:itemset nodeset="instance('code-tables')/CodeTable[CodeTableName='SourceCode']/item">
<xf:label ref="label"/>
<xf:value ref="value"/>
</xf:itemset>
</xf:select1>
<xf:trigger bind="tag-delete-trigger" class="inline-delete">
<xf:label>Delete Source</xf:label>
<xf:delete nodeset="instance('my-term')/PrimarySourceCode[index('source-repeat')]" ev:event="DOMActivate"/>
</xf:trigger>
</xf:repeat>
<xf:trigger>
<xf:label>Add New Source</xf:label>
<xf:action ev:event="DOMActivate">
<xf:insert nodeset="instance('my-term')/PrimarySourceCode" at="last()" position="after"/>
<xf:setvalue ref="instance('my-term')/PrimarySourceCode[index('source-repeat')]" value=""/>
<xf:setfocus control="source-select"/>
</xf:action>
</xf:trigger>
</xf:group>
<!-- bind="other-source" -->
<xf:group ref="instance('views')/other-source">
<xf:input ref="instance('my-term')/PrimarySourceOtherText">
<xf:label>Other Source: </xf:label>
</xf:input>
</xf:group>
<xf:group>
<xf:label class="group-label">Projects</xf:label>
<xf:repeat id="project-repeat" nodeset="instance('my-term')/ProjectCode">
<xf:select1 ref="." class="inline-delete" id="project-select">
<xf:label>Project:</xf:label>
<xf:hint>A code for classifying all the data elements.</xf:hint>
<xf:itemset nodeset="instance('code-tables')/CodeTable[CodeTableName='ProjectCode']/item">
<xf:label ref="label"/>
<xf:value ref="value"/>
</xf:itemset>
</xf:select1>
<xf:trigger bind="tag-delete-trigger" class="inline-delete">
<xf:label>Delete Project</xf:label>
<xf:delete nodeset="instance('my-term')/ProjectCode[index('project-repeat')]" ev:event="DOMActivate"/>
</xf:trigger>
</xf:repeat>
<xf:trigger>
<xf:label>Add New Project</xf:label>
<xf:action ev:event="DOMActivate">
<xf:insert nodeset="instance('my-term')/ProjectCode" at="last()" position="after"/>
<xf:setvalue ref="instance('my-term')/ProjectCode[index('project-repeat')]" value=""/>
<xf:setfocus control="project-select"/>
</xf:action>
</xf:trigger>
</xf:group>
<xf:select1 ref="instance('my-term')/AssignedToCode">
<xf:label>Assigned to Facilitate Approval:</xf:label>
<xf:itemset nodeset="instance('code-tables')/CodeTable[CodeTableName='AssignedToCode']/item">
<xf:label ref="label"/>
<xf:value ref="value"/>
</xf:itemset>
</xf:select1>
<xf:select1 ref="instance('my-term')/ApprovalStatusCode">
<xf:label>Approval Status:</xf:label>
<xf:item>
<xf:label>Initial Draft</xf:label>
<xf:value>initial-draft</xf:value>
</xf:item>
<xf:item>
<xf:label>Assigned for Review</xf:label>
<xf:value>assigned-to-review-team</xf:value>
</xf:item>
<xf:item>
<xf:label>Program Approved</xf:label>
<xf:value>program-approved</xf:value>
</xf:item>
</xf:select1>
<xf:group ref="instance('views')/approved">
<xf:select1 ref="instance('my-term')/ApprovedByCode">
<xf:label>Approved By:</xf:label>
<xf:hint>The person or organization that approved this term.</xf:hint>
<xf:itemset nodeset="instance('code-tables')/CodeTable[CodeTableName='ApprovedByCode']/item">
<xf:label ref="label"/>
<xf:value ref="value"/>
</xf:itemset>
</xf:select1>
<xf:input ref="instance('my-term')/ApprovalDate">
<xf:label>Approval Date:</xf:label>
<xf:hint>The date that this term was approved.</xf:hint>
</xf:input>
</xf:group>
<xf:input ref="instance('my-term')/GroupStarredItemIndicator">
<xf:label>Starred Item:</xf:label>
<xf:hint>An indication by the group that this item needs attention.</xf:hint>
</xf:input>
<xf:group>
<xf:label class="group-label">Classifiers</xf:label>
<xf:repeat id="classifier-repeat" nodeset="instance('my-term')/ClassifierCode">
<xf:select1 ref="." class="inline-delete" id="classifier-select">
<xf:label>Classifier (Filter) Code:</xf:label>
<xf:hint>A code for classifying all the data elements.</xf:hint>
<xf:itemset nodeset="instance('code-tables')/CodeTable[CodeTableName='ClassifierCode']/item">
<xf:label ref="label"/>
<xf:value ref="value"/>
</xf:itemset>
</xf:select1>
<xf:trigger bind="tag-delete-trigger" class="inline-delete">
<xf:label>Delete Classifier (Filter)</xf:label>
<xf:delete nodeset="instance('my-term')/ClassifierCode[index('classifier-repeat')]" ev:event="DOMActivate"/>
</xf:trigger>
</xf:repeat>
<xf:trigger>
<xf:label>Add New Classifier (Filter)</xf:label>
<xf:action ev:event="DOMActivate">
<xf:insert nodeset="instance('my-term')/ClassifierCode" at="last()" position="after"/>
<xf:setvalue ref="instance('my-term')/ClassifierCode[index('classifier-repeat')]" value=""/>
<xf:setfocus control="classifier-select"/>
</xf:action>
</xf:trigger>
</xf:group>
<xf:group>
<xf:label class="group-label">Tags</xf:label>
<xf:repeat id="tag-repeat" nodeset="instance('my-term')/Tag">
<xf:input ref="." class="Tag inline-delete" id="tag-input">
<xf:label>Tag (Keyword):</xf:label>
</xf:input>
<xf:trigger bind="tag-delete-trigger" class="inline-delete">
<xf:label>Delete Tag (Keyword)</xf:label>
<xf:delete nodeset="instance('my-term')/Tag[index('tag-repeat')]" ev:event="DOMActivate"/>
</xf:trigger>
</xf:repeat>
<xf:trigger>
<xf:label>Append New Tag (Keyword)</xf:label>
<xf:action ev:event="DOMActivate">
<xf:insert nodeset="instance('my-term')/Tag" at="last()" position="after"/>
<xf:setvalue ref="instance('my-term')/Tag[index('tag-repeat')]" value=""/>
<xf:setfocus control="tag-input"/>
</xf:action>
</xf:trigger>
</xf:group>
<xf:textarea class="Notes" ref="instance('my-term')/TermNoteText">
<xf:label>General notes:</xf:label>
<xf:hint>Any related notes about this term.</xf:hint>
</xf:textarea>
<xf:input ref="instance('my-term')/DataElement/DataElementIndicator">
<xf:label>Candidate Data Term:</xf:label>
<xf:hint>This term has a mapping to a registered data element.</xf:hint>
</xf:input>
<xf:group ref="instance('views')/data-element">
<xf:input ref="instance('my-term')/DataElement/DataElementDerivedIndicator">
<xf:label>Data Element Derived:</xf:label>
<xf:hint>This data element is derived from other data elements.</xf:hint>
</xf:input>
<xf:group ref="instance('views')/data-element-derived">
<xf:textarea class="large-textarea" ref="instance('my-term')/DataElement/DataElementDerivationRuleText">
<xf:label>Derivation Rules:</xf:label>
<xf:hint>Any rules used to derive this data element from other data elements.</xf:hint>
</xf:textarea>
</xf:group>
<xf:input ref="instance('my-term')/DataElement/DataElementIdentifierIndicator">
<xf:label>Data Element Identifier:</xf:label>
<xf:hint>This data element is use to identify data sets.</xf:hint>
</xf:input>
<xf:textarea class="large-textarea" ref="instance('my-term')/DataElementEnumerationsText">
<xf:label>Enumerations (Valid Codes):</xf:label>
<xf:hint>A listing of all valid values and definitions for the possible values of this data element.</xf:hint>
</xf:textarea>
<xf:textarea class="large-textarea" ref="instance('my-term')/DataElement/DataElementValidationRulesText">
<xf:label>Validation Rules:</xf:label>
<xf:hint>Any rules used to validate this data element.</xf:hint>
</xf:textarea>
<xf:input ref="instance('my-term')/DataElement/DataElementName" class="DataElementName">
<xf:label>Data Element Name:</xf:label>
<xf:hint>ISO name for this data element including the ObjectClass, Property and Representation Term using an UpperCamelCase notation.</xf:hint>
</xf:input>
</xf:group>
<xf:submit submission="save">
<xf:label>Save</xf:label>
</xf:submit>
</xf:group>
<a href="{cms:feedback-url()}">Feedback</a>
</body>
</html>
)