﻿<?xml version="1.0"?><?mso-infoPathSolution productVersion="14.0.0" PIVersion="1.0.0.0" href="https://www.formsboard.com/QdabraWebService/Forms/ID/102022/template.xsn" name="urn:schemas-microsoft-com:office:infopath:DetailingQuestionsgQDABRA-https-www-formsboard-com-QdabraWebServicev20111102055706:-myXSD-2011-09-29T08-46-26" solutionVersion="1.0.0.27"?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.2"?><?QdabraDBXL docid="102023" doctype="DetailingQuestions_QDABRA" name="" author="" description="" doctypeid="102022" domainid="1059" version="26" ?><my:DetailingQuestions xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-09-29T08:46:26" xml:lang="en-us"><my:SuperSections><my:SuperSection><my:Title>Best Practices</my:Title><my:Code>BSTPRC</my:Code></my:SuperSection><my:SuperSection><my:Title>Performance</my:Title><my:Code>PERF</my:Code></my:SuperSection><my:SuperSection><my:Title>Cost of Ownership</my:Title><my:Code>COST</my:Code></my:SuperSection><my:SuperSection><my:Title>Security</my:Title><my:Code>SECURITY</my:Code></my:SuperSection><my:SuperSection><my:Title>Visual Design</my:Title><my:Code>VISDEG</my:Code></my:SuperSection><my:SuperSection><my:Title>Other</my:Title><my:Code>OTHER</my:Code></my:SuperSection></my:SuperSections><my:Sections><my:Section><my:Title>Schema</my:Title><my:Code>SCH</my:Code><my:SuperSectionCode>BSTPRC</my:SuperSectionCode></my:Section><my:Section><my:Title>View Practices</my:Title><my:Code>PRAC_VIEWS</my:Code><my:SuperSectionCode>BSTPRC</my:SuperSectionCode></my:Section><my:Section><my:Title>Logic</my:Title><my:Code>LOGIC</my:Code><my:SuperSectionCode>BSTPRC</my:SuperSectionCode></my:Section><my:Section><my:Title>Compatibility</my:Title><my:Code>COMP</my:Code><my:SuperSectionCode>BSTPRC</my:SuperSectionCode></my:Section><my:Section><my:Title>View Performance</my:Title><my:Code>PERF_VIEWS</my:Code><my:SuperSectionCode>PERF</my:SuperSectionCode></my:Section><my:Section><my:Title>Code</my:Title><my:Code>CODE</my:Code><my:SuperSectionCode>COST</my:SuperSectionCode></my:Section><my:Section><my:Title>Task Pane</my:Title><my:Code>TASKPANE</my:Code><my:SuperSectionCode>COST</my:SuperSectionCode></my:Section><my:Section><my:Title>Secondary Data</my:Title><my:Code>SECOND_DTA</my:Code><my:SuperSectionCode>COST</my:SuperSectionCode></my:Section><my:Section><my:Title>Security</my:Title><my:Code>SECURITY</my:Code><my:SuperSectionCode>SECURITY</my:SuperSectionCode></my:Section><my:Section><my:Title>Area</my:Title><my:Code>VISUAL_AREA</my:Code><my:SuperSectionCode>VISDEG</my:SuperSectionCode></my:Section><my:Section><my:Title>Other</my:Title><my:Code/><my:SuperSectionCode>OTHER</my:SuperSectionCode></my:Section></my:Sections><my:Questions><my:Question><my:Title>Schema Hierarchy</my:Title><my:Code>SCH_HIER</my:Code><my:Type>YesSomeNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Is the schema organized into a logical hierarchy, placing related nodes into groups?</my:QuestionText><my:SectionCode>SCH</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>The schema appears to be organized into a logical hierarchy placing related nodes into groups.
This is helpful to quickly locate schema nodes, often in relation to sections in the view. </my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>The schema is not very well organized into a logical hierarchy with related nodes in groups.
Organizing the schema into a logical hierarchy is helpful to quickly locate schema nodes, often in relation to sections in the view. </my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation>OK</my:Evaluation><my:Comment>The schema appears, to some extent, to be organized into a logical hierarchy placing related nodes into groups, but there are some places where it is not.
Organizing the schema into a logical hierarchy is helpful to quickly locate schema nodes, often in relation to sections in the view. </my:Comment></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Datatypes</my:Title><my:Code>SCH_DATATYPES</my:Code><my:Type>YesSomeNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form use appropriate datatypes for its fields?</my:QuestionText><my:SectionCode>SCH</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>The form appears to use the appropriate datatypes for its fields.
Using the correct data type gives you built-in data validation to ensure data accuracy and assists when pushing data to a database.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>The form does not seem to use appropriate datatypes for many of its fields.
Using the correct data type gives you built-in data validation to ensure data accuracy and assists when pushing data to a database.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation>OK</my:Evaluation><my:Comment>The form uses appropriate datatypes for some of its fields, but could use some improvement.
Using the correct data type gives you built-in data validation to ensure data accuracy and assists when pushing data to a database.</my:Comment></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Node name casing</my:Title><my:Code>SCH_CASING</my:Code><my:Type>YesSomeNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form use consistent casing for its node names?</my:QuestionText><my:SectionCode>SCH</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Node name casing is consistent.
We generally recommend using PascalCasing for Element names, and camelCasing for attribute names to help quickly help differentiate the two.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>The form does not use a very consistent casing scheme for its node names.
We generally recommend using PascalCasing for Element names, and camelCasing for attribute names to help quickly help differentiate the two.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation>OK</my:Evaluation><my:Comment>Node name casing is consistent to some degree.  It's good to have a consistent casing scheme throughout the data source.
We generally recommend using PascalCasing for Element names, and camelCasing for attribute names to help quickly help differentiate the two.</my:Comment></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Data driven logic</my:Title><my:Code>LOGIC_DATADRIVEN</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form have a data-driven design?  Does it populate data and dropdown values from secondary data sources?</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>The form uses secondary data sources and other techniques to give it a data-driven design.
Designing a form to use dynamic, data-driven logic can require a little extra complexity initially, but it can greatly reduce the cost of maintaining the form and improve the user experience.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>The form does not appear to use secondary data sources or other techniques to give it a data-driven design.
Designing a form to use dynamic, data-driven logic can require a little extra complexity initially, but it can greatly reduce the cost of maintaining the form and improve the user experience.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Rules</my:Title><my:Code>LOGIC_RULES</my:Code><my:Type>YesSomeNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form make extensive use of rules to make it "smart?"</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form makes extensive use of rules.
Rules are an integral part of InfoPath form design. They allow the form to carry out tasks without the user's intervention.  They also help to keep the data within the form consistent.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>Your form makes little to no use of rules.
Rules are an integral part of InfoPath form design. They allow the form to carry out tasks without the user's intervention.  They also help to keep the data within the form consistent. You should evaluate your form to see where the use of rules could improve user experience and design. </my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation>OK</my:Evaluation><my:Comment>Your form makes some use of rules.
Rules are an integral part of InfoPath form design. They allow the form to carry out tasks without the user's intervention.  They also help to keep the data within the form consistent. You should evaluate your form to see where the use of rules could improve user experience and design. </my:Comment></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Query Data Connections</my:Title><my:Code>DATACONN_QUERY</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form pull data from external data sources?</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form pulls data from external data sources.
External data connections can greatly enhance the functionality of your form, by providing dynamic, up to date values.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>OK</my:Evaluation><my:Comment>Your form does not use data from external data sources.
External data connections can greatly enhance the functionality of your form, by providing dynamic, up to date values. There are certain form scenarios, such as offline and e-mail based forms, where external data sources are not available, but outside these scenarios, we recommend seeking ways to make use of external data sources.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Submit Data Connections</my:Title><my:Code>DATACONN_SUBMIT</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form submit to external data sources?</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form submits to external data sources.
Submitting your documents to a server can be important for keeping filled documents in a centralized data and allowing other people to access them.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>OK</my:Evaluation><my:Comment>Your form submits to external data sources.
Submitting your documents to a server can be important for keeping filled documents in a centralized data and allowing other people to access them. There are certain form scenarios, such as offline and e-mail based forms, where external data sources are not available, but outside these scenarios, we recommend seeking ways to make use of submitting data.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>OData</my:Title><my:Code>DATACONN_ODATA</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Is the form optimized to use SharePoint's new OData support? (Leave blank if the form does not query data from SharePoint)</my:QuestionText><my:SectionCode/><my:Include>false</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form makes use of SharePoint's new OData support.
OData can be very useful in making optimized SharePoint queries without any code.  We highly recommend using OData if you have it at your disposal.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>OK</my:Evaluation><my:Comment>Your form does not make use of SharePoint's new OData support.
OData can be very useful in making optimized SharePoint queries without any code.  We highly recommend using OData if you have it at your disposal.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>UDCs and XTPs</my:Title><my:Code>DESIGN_UDCXTP</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form use UDC data connections or XTPs?</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>The form makes use of UDC data connections and/or XTPs.
Making use of UDCs and XTPs can greatly reduce your time spent on form design, and XTPs can help to maintain consistent appearance and behavior across all of your forms.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>OK</my:Evaluation><my:Comment>The form does not make use of UDC data connections or XTPs.
Making use of UDCs and XTPs can greatly reduce your time spent on form design, and XTPs can help to maintain consistent appearance and behavior across all of your forms.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Browser Best Practices</my:Title><my:Code>COMPAT_BRPRACTICES</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form adhere to browser best practices? (Leave blank if the form will not be used in a browser)</my:QuestionText><my:SectionCode>COMP</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form adheres to browser form best practices.
These best practices are important for ease in deploying and using a form within the browser.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>Your form does not adhere to browser form best practices.
These best practices are important for ease in deploying and using a form within the browser.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Code</my:Title><my:Code>COST_CODE</my:Code><my:Type>Auto</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form use custom code?</my:QuestionText><my:SectionCode>CODE</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>This form contains custom code.
Code can extend the functionality of an InfoPath form at times, but tends to make forms more complicated to maintain and is to be avoided when possible.
We recommend using a generic solution like qRules if it can replace all of the functionality provided by the code.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Good</my:Evaluation><my:Comment>This form does not contain custom code.
Code can provide extra functionality, but it also makes a template harder to maintain.
We recommend using qRules to fill in any gaps in InfoPath's built-in functionality.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions><my:Action><my:VariableName>allFiles</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>manifest.xsf</my:TemplateFile><my:XPath>//xsf:package/xsf:files/xsf:file</my:XPath></my:Action><my:Action><my:VariableName>rootAssemblyFile</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>manifest.xsf</my:TemplateFile><my:XPath>$allFiles[xsf:fileProperties/xsf:property[@name='fileType'][@value='rootAssembly']]</my:XPath></my:Action></my:Actions><my:Assertions><my:Assertion><my:XPath>$rootAssemblyFile[@name != 'Qdabra.Tools.RulesLibrary.dll']</my:XPath><my:Result><my:ResultLevel>Bad</my:ResultLevel><my:ResultMessage>This form contains custom code.
Code can extend the functionality of an InfoPath form at times, but tends to make forms more complicated to maintain and is to be avoided when possible.
We recommend using a generic solution like qRules if it can replace all of the functionality provided by the code.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:Assertion></my:Assertions><my:DefaultResult><my:Result><my:ResultLevel>Good</my:ResultLevel><my:ResultMessage>This form does not contain custom code.
Code can provide extra functionality, but it also makes a template harder to maintain.
We recommend using qRules to fill in any gaps in InfoPath's built-in functionality.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>qRules</my:Title><my:Code>COST_QRULES</my:Code><my:Type>Auto</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form make use of qRules?</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form makes use of qRules.
As you've surely found already, qRules can greatly increase the amount of functionality you can use in your form, and increase the number of features available to you.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>OK</my:Evaluation><my:Comment>Your form does not make use use of qRules.
qRules can greatly increase the amount of functionality you can use in your form, and increase the number of features available to you. If you are finding areas where InfoPath's built-in functionality does not give you everything you need, we recommend checking qRules out.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions><my:Action><my:VariableName>allFiles</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>manifest.xsf</my:TemplateFile><my:XPath>//xsf:package/xsf:files/xsf:file</my:XPath></my:Action><my:Action><my:VariableName>rootAssemblyFile</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>manifest.xsf</my:TemplateFile><my:XPath>$allFiles[xsf:fileProperties/xsf:property[@name='fileType'][@value='rootAssembly']]</my:XPath></my:Action></my:Actions><my:Assertions><my:Assertion><my:XPath>$rootAssemblyFile[@name = 'Qdabra.Tools.RulesLibrary.dll']</my:XPath><my:Result><my:ResultLevel>Good</my:ResultLevel><my:ResultMessage>Your form makes use of qRules.
As you've surely found already, qRules can greatly increase the amount of functionality you can use in your form, and increase the number of features available to you.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:Assertion></my:Assertions><my:DefaultResult><my:Result><my:ResultLevel>OK</my:ResultLevel><my:ResultMessage>Your form does not make use use of qRules.
qRules can greatly increase the amount of functionality you can use in your form, and increase the number of features available to you. If you are finding areas where InfoPath's built-in functionality does not give you everything you need, we recommend checking qRules out.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Version Upgrade and Migration</my:Title><my:Code>COST_UPGRADE_MIGRATION</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Is the form prepared for version upgrade and migration changes?</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form is prepared for version upgrade and migration changes.
It is important to approach form design with the possibility that it could need to be upgraded or migrated at some time.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>Your form is not prepared for version upgrade and migration changes.
It is important to approach form design with the possibility that it could need to be upgraded or migrated at some time.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Layout and Guidance</my:Title><my:Code>UX_LAYOUT</my:Code><my:Type>YesSomeNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form look friendly - Does it have common header-footer sections, logos, colorful borders? 
Does it have a smooth user experience - Does it show status, provide hide/show, guidance text, etc.?</my:QuestionText><my:SectionCode>VISUAL_AREA</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>Your form has a user friendly appearance and layout.
There are many ways to maximize a user's ease of using a form, such providing a visually pleasing color scheme, allowing sections' visibility to be toggled, and providing guidance text.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>Your form does not appear to have a very user friendly appearance and layout.
There are many ways to maximize a user's ease of using a form, such providing a visually pleasing color scheme, allowing sections' visibility to be toggled, and providing guidance text. We recommend evaluating your form to see where this could be improved.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation>OK</my:Evaluation><my:Comment>Your form could use some improvement in providing a user friendly appearance and layout.
There are many ways to maximize a user's ease of using a form, such providing a visually pleasing color scheme, allowing sections' visibility to be toggled, and providing guidance text. We recommend evaluating your form to see where this could be improved.</my:Comment></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Workflow</my:Title><my:Code>UX_WORKFLOW</my:Code><my:Type>YesNo</my:Type><my:Weight>1</my:Weight><my:QuestionText>Does the form show its workflow status?</my:QuestionText><my:SectionCode/><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation>Good</my:Evaluation><my:Comment>The form shows workflow status.
This is useful in letting users know the current state of the form's data, and how to proceed with it.</my:Comment></my:YesResponse><my:NoResponse><my:Evaluation>Bad</my:Evaluation><my:Comment>The form does now show workflow status.
Showing workflow status is useful for letting users know the current state of the form's data, and how to proceed with it.</my:Comment></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions/><my:Assertions/><my:DefaultResult><my:Result><my:ResultLevel/><my:ResultMessage/><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Rule names</my:Title><my:Code>NAMING_RULES</my:Code><my:Type>Auto</my:Type><my:Weight>1</my:Weight><my:QuestionText/><my:SectionCode>LOGIC</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation/><my:Comment/></my:YesResponse><my:NoResponse><my:Evaluation/><my:Comment/></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions><my:Action><my:VariableName>numDefaultRules</my:VariableName><my:ResultType>number</my:ResultType><my:TemplateFile>manifest.xsf</my:TemplateFile><my:XPath>count(//xsf:rule/@caption[substring-before(., ' ') = 'Rule'][number(substring-after(., ' ')) = number(substring-after(., ' '))])</my:XPath></my:Action></my:Actions><my:Assertions><my:Assertion><my:XPath>$numDefaultRules != 0</my:XPath><my:Result><my:ResultLevel>Bad</my:ResultLevel><my:ResultMessage>concat('You have ', $numDefaultRules, ' rule', choose($numDefaultRules = 1, '', 's'), ' that still ', choose($numDefaultRules = 1, 'has its', 'have their'), ' default name.')</my:ResultMessage><my:ResultMessageIsFormula>true</my:ResultMessageIsFormula></my:Result></my:Assertion></my:Assertions><my:DefaultResult><my:Result><my:ResultLevel>Good</my:ResultLevel><my:ResultMessage>All of your rules have names to indicate what they do.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Naming</my:Title><my:Code>SCH_NODENAMES</my:Code><my:Type>Auto</my:Type><my:Weight>1</my:Weight><my:QuestionText/><my:SectionCode>SCH</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation/><my:Comment/></my:YesResponse><my:NoResponse><my:Evaluation/><my:Comment/></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions><my:Action><my:VariableName>defaultNameRoot</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>sampledata.xml</my:TemplateFile><my:XPath>/*[local-name() = 'myFields']</my:XPath></my:Action><my:Action><my:VariableName>rootChildren</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>sampledata.xml</my:TemplateFile><my:XPath>/*/*[not(namespace-uri() = 'http://schemas.microsoft.com/office/infopath/2003' and (local-name() = 'SchemaInfo' or local-name() = 'DataConnection'))]</my:XPath></my:Action><my:Action><my:VariableName>otherDescendants</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>sampledata.xml</my:TemplateFile><my:XPath>$rootChildren//*</my:XPath></my:Action><my:Action><my:VariableName>defaultNameDescendants</my:VariableName><my:ResultType>nodeset</my:ResultType><my:TemplateFile>sampledata.xml</my:TemplateFile><my:XPath>($rootChildren | $otherDescendants)[starts-with(local-name(), 'group') or starts-with(local-name(), 'field')]</my:XPath></my:Action><my:Action><my:VariableName>defaultCount</my:VariableName><my:ResultType>number</my:ResultType><my:TemplateFile>sampledata.xml</my:TemplateFile><my:XPath>count($defaultNameRoot | $defaultNameDescendants)</my:XPath></my:Action></my:Actions><my:Assertions><my:Assertion><my:XPath>$defaultCount != 0</my:XPath><my:Result><my:ResultLevel>Bad</my:ResultLevel><my:ResultMessage>concat('Your form has ', $defaultCount, ' field', choose($defaultCount = 1, '', 's'), ' that still ', choose($defaultCount = 1, 'has its', 'have their'), ' default name.  It is important to give fields meaningful names, to make form logic easier to work with, and to increase the ease of maintaining your form.')</my:ResultMessage><my:ResultMessageIsFormula>true</my:ResultMessageIsFormula></my:Result></my:Assertion></my:Assertions><my:DefaultResult><my:Result><my:ResultLevel>Good</my:ResultLevel><my:ResultMessage>All of your nodes have been given specific names other than the default names.  This is important for quickly recognizing fields' specific purposes when maintaining your form template.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question><my:Title>Task Pane</my:Title><my:Code>TASK_TASKPANE</my:Code><my:Type>Auto</my:Type><my:Weight>1</my:Weight><my:QuestionText/><my:SectionCode>TASKPANE</my:SectionCode><my:Include>true</my:Include><my:YesNo><my:YesResponse><my:Evaluation/><my:Comment/></my:YesResponse><my:NoResponse><my:Evaluation/><my:Comment/></my:NoResponse><my:SomeResponse><my:Evaluation/><my:Comment/></my:SomeResponse></my:YesNo><my:Auto><my:Actions><my:Action><my:VariableName>taskPaneIsPresent</my:VariableName><my:ResultType>boolean</my:ResultType><my:TemplateFile>manifest.xsf</my:TemplateFile><my:XPath>/xsf:xDocumentClass/xsf:taskpane</my:XPath></my:Action></my:Actions><my:Assertions><my:Assertion><my:XPath>$taskPaneIsPresent</my:XPath><my:Result><my:ResultLevel>OK</my:ResultLevel><my:ResultMessage>Your form uses a custom taskpane. Custom taskpanes can be very useful for certain needs, but require HTML and possibly JavaScript coding, which requires additional debugging and maintenance. Taskpanes are not available on browser-based forms.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:Assertion></my:Assertions><my:DefaultResult><my:Result><my:ResultLevel>Good</my:ResultLevel><my:ResultMessage>Your form does not use a custom taskpane. Custom taskpanes can be very useful for certain needs, but require HTML and possibly JavaScript coding, which requires additional debugging and maintenance. Taskpanes are not available on browser-based forms.</my:ResultMessage><my:ResultMessageIsFormula>false</my:ResultMessageIsFormula></my:Result></my:DefaultResult></my:Auto></my:Question><my:Question>
										<my:Title>Browser Compatibility</my:Title>
										<my:Code>COMPAT_REQ_BRCOMPAT</my:Code>
										<my:Type>Auto</my:Type>
										<my:Weight>1</my:Weight>
										<my:QuestionText/>
										<my:SectionCode>COMP</my:SectionCode>
										<my:Include>true</my:Include>
										<my:YesNo>
											<my:YesResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:YesResponse>
											<my:NoResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:NoResponse>
											<my:SomeResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:SomeResponse>
										</my:YesNo>
										<my:Auto>
											<my:Actions><my:Action>
										<my:VariableName>runtimeCompatibility</my:VariableName>
										<my:ResultType>nodeset</my:ResultType>
										<my:TemplateFile>manifest.xsf</my:TemplateFile>
										<my:XPath>/xsf:xDocumentClass/xsf:extensions/xsf:extension/xsf2:solutionDefinition/@runtimeCompatibilityURL</my:XPath>
									</my:Action></my:Actions>
											<my:Assertions><my:Assertion>
										<my:XPath>contains($runtimeCompatibility, 'server')</my:XPath>
										<my:Result>
											<my:ResultLevel>Good</my:ResultLevel>
											<my:ResultMessage>This form is configured for browser compatibility.</my:ResultMessage>
											<my:ResultMessageIsFormula>false</my:ResultMessageIsFormula>
										</my:Result>
									</my:Assertion></my:Assertions>
											<my:DefaultResult>
												<my:Result>
													<my:ResultLevel>Bad</my:ResultLevel>
													<my:ResultMessage>This form is not configured for browser compatibility.</my:ResultMessage>
													<my:ResultMessageIsFormula>false</my:ResultMessageIsFormula>
												</my:Result>
											</my:DefaultResult>
										</my:Auto>
									</my:Question><my:Question>
										<my:Title>Server Verification</my:Title>
										<my:Code>COMPAT_SRV_VER</my:Code>
										<my:Type>Auto</my:Type>
										<my:Weight>1</my:Weight>
										<my:QuestionText/>
										<my:SectionCode>COMP</my:SectionCode>
										<my:Include>true</my:Include>
										<my:YesNo>
											<my:YesResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:YesResponse>
											<my:NoResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:NoResponse>
											<my:SomeResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:SomeResponse>
										</my:YesNo>
										<my:Auto>
											<my:Actions><my:Action>
										<my:VariableName>compatibilityUrl</my:VariableName>
										<my:ResultType>nodeset</my:ResultType>
										<my:TemplateFile>manifest.xsf</my:TemplateFile>
										<my:XPath>/xsf:xDocumentClass/xsf:extensions/xsf:extension/xsf2:solutionDefinition/@runtimeCompatibilityURL[. != '']</my:XPath>
									</my:Action></my:Actions>
											<my:Assertions><my:Assertion>
										<my:XPath>$compatibilityUrl</my:XPath>
										<my:Result>
											<my:ResultLevel>Good</my:ResultLevel>
											<my:ResultMessage>concat('Your template is set up to verify browser compatibility against the server URL "', $compatibilityUrl, '."  This is useful in identifying compatibility issues that InfoPath cannot identify on its own.')</my:ResultMessage>
											<my:ResultMessageIsFormula>true</my:ResultMessageIsFormula>
										</my:Result>
									</my:Assertion></my:Assertions>
											<my:DefaultResult>
												<my:Result>
													<my:ResultLevel>Bad</my:ResultLevel>
													<my:ResultMessage>Your template is set up to verify browser compatibility against a server URL. Using server verification is useful in identifying compatibility issues that InfoPath cannot identify on its own.</my:ResultMessage>
													<my:ResultMessageIsFormula>false</my:ResultMessageIsFormula>
												</my:Result>
											</my:DefaultResult>
										</my:Auto>
									</my:Question><my:Question>
										<my:Title>View Menu</my:Title>
										<my:Code>PRAC_VIEW_MENU</my:Code>
										<my:Type>Auto</my:Type>
										<my:Weight>1</my:Weight>
										<my:QuestionText/>
										<my:SectionCode>PRAC_VIEWS</my:SectionCode>
										<my:Include>true</my:Include>
										<my:YesNo>
											<my:YesResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:YesResponse>
											<my:NoResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:NoResponse>
											<my:SomeResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:SomeResponse>
										</my:YesNo>
										<my:Auto>
											<my:Actions><my:Action>
										<my:VariableName>allViews</my:VariableName>
										<my:ResultType>nodeset</my:ResultType>
										<my:TemplateFile>manifest.xsf</my:TemplateFile>
										<my:XPath>/xsf:xDocumentClass/xsf:views/xsf:view</my:XPath>
									</my:Action><my:Action>
										<my:VariableName>unlockedViews</my:VariableName>
										<my:ResultType>nodeset</my:ResultType>
										<my:TemplateFile>manifest.xsf</my:TemplateFile>
										<my:XPath>$allViews[@showMenuItem = 'yes']</my:XPath>
									</my:Action></my:Actions>
											<my:Assertions><my:Assertion>
										<my:XPath>count($allViews) = 1</my:XPath>
										<my:Result>
											<my:ResultLevel>Good</my:ResultLevel>
											<my:ResultMessage>There is presently only one view, so there is no view menu. 
If you add views in the future, consider whether you want to use in-view and/or menu navigation for view switching. Most forms require view access to be controlled, which means in-view navigation (such as rules, tabs or buttons for switching views) — for this to work you must hide each view from the View menu using the view Properties dialog box.</my:ResultMessage>
											<my:ResultMessageIsFormula>false</my:ResultMessageIsFormula>
										</my:Result>
									</my:Assertion><my:Assertion>
										<my:XPath>count($unlockedViews) != 0</my:XPath>
										<my:Result>
											<my:ResultLevel>Bad</my:ResultLevel>
											<my:ResultMessage>concat('Your form displays ', count($unlockedViews), ' of its ', count($allViews), " views in the InfoPath view menu.  Typically, it is important to control users' access to views through form logic, and it is therefore a good practice to prevent views from being displayed in the view menu.  This option can be accessed in each respective view's Properties dialog box.")</my:ResultMessage>
											<my:ResultMessageIsFormula>true</my:ResultMessageIsFormula>
										</my:Result>
									</my:Assertion></my:Assertions>
											<my:DefaultResult>
												<my:Result>
													<my:ResultLevel>Good</my:ResultLevel>
													<my:ResultMessage>concat('Your form does not display any of its ', count($allViews), " views in the InfoPath view menu.  Typically, it is important to control users' access to views through form logic, and it is therefore a good practice to prevent views from being displayed in the view menu.  This option can be accessed in each respective view's Properties dialog box.")</my:ResultMessage>
													<my:ResultMessageIsFormula>true</my:ResultMessageIsFormula>
												</my:Result>
											</my:DefaultResult>
										</my:Auto>
									</my:Question><my:Question>
										<my:Title>Security Level</my:Title>
										<my:Code>SEC_SECURITY_LEVEL</my:Code>
										<my:Type>Auto</my:Type>
										<my:Weight>1</my:Weight>
										<my:QuestionText/>
										<my:SectionCode>SECURITY</my:SectionCode>
										<my:Include>true</my:Include>
										<my:YesNo>
											<my:YesResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:YesResponse>
											<my:NoResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:NoResponse>
											<my:SomeResponse>
												<my:Evaluation/>
												<my:Comment/>
											</my:SomeResponse>
										</my:YesNo>
										<my:Auto>
											<my:Actions><my:Action>
										<my:VariableName>autoTrustSetting</my:VariableName>
										<my:ResultType>nodeset</my:ResultType>
										<my:TemplateFile>manifest.xsf</my:TemplateFile>
										<my:XPath>/xsf:xDocumentClass/@trustSetting[. = 'automatic']</my:XPath>
									</my:Action></my:Actions>
											<my:Assertions><my:Assertion>
										<my:XPath>$autoTrustSetting</my:XPath>
										<my:Result>
											<my:ResultLevel>Good</my:ResultLevel>
											<my:ResultMessage>This form is set to automatically determine its trust level.  This is the InfoPath default, and the best practice.</my:ResultMessage>
											<my:ResultMessageIsFormula>false</my:ResultMessageIsFormula>
										</my:Result>
									</my:Assertion></my:Assertions>
											<my:DefaultResult>
												<my:Result>
													<my:ResultLevel>OK</my:ResultLevel>
													<my:ResultMessage>This form is not set to automatically determine its level. The InfoPath default, and the best practice, is to have the form automatically determine the trust level, though there are cases where manually overriding the default is necessary.</my:ResultMessage>
													<my:ResultMessageIsFormula>false</my:ResultMessageIsFormula>
												</my:Result>
											</my:DefaultResult>
										</my:Auto>
									</my:Question></my:Questions></my:DetailingQuestions>