2.4.1.21.6 Hyperlink Input Control

The hyperlink input control allows the user to create an editable hyperlink that navigates the default browser to a specified URL. The following table describes the symbols for a hyperlink input control.

Symbol

Description

HYPERLINK_BOX_NO_BINDING

A static hyperlink input control where the user cannot specify a web location.

HYPERLINK_BOX_SINGLE_BOUND

Hyperlink inputs are editable controls where the user can specify a web location and open a new browser window to that location.

HYPERLINK_BOX_SINGLE_BOUND_WITH_CONDITIONAL_FORMATTING

Similar to HYPERLINK_BOX_SINGLE_BOUND, except that the hyperlink input control supports conditional formatting.

HYPERLINK_BOX_DUAL_BOUND

Similar to HYPERLINK_BOX_SINGLE_BOUND, except that the hyperlink input control is bound to a second node that provides the text for the hyperlink.

HYPERLINK_BOX_DUAL_BOUND_WITH_CONDITIONAL_FORMATTING

Similar to HYPERLINK_BOX_DUAL_BOUND, except that the hyperlink input control supports conditional formatting.

HYPERLINK_BOX_SINGLE_BOUND_WITH_COMPLEX_XPATHS

Similar to HYPERLINK_BOX_SINGLE_BOUND, except that the hyperlink input control is bound to a complex XPath expression.

HYPERLINK_BOX_SINGLE_BOUND_WITH_CONDITIONAL_FORMATTING_AND_COMPLEX_XPATHS

Similar to HYPERLINK_BOX_SINGLE_BOUND_WITH_COMPLEX_XPATHS, except that the hyperlink input control supports conditional formatting.

HYPERLINK_BOX_DUAL_BOUND_WITH_COMPLEX_XPATHS

Similar to HYPERLINK_BOX_SINGLE_BOUND_WITH_COMPLEX_XPATHS, except that the hyperlink input control is bound to a node in the form that provides the text for the hyperlink.

HYPERLINK_BOX_DUAL_BOUND_WITH_CONDITIONAL_FORMATTING_AND_COMPLEX_XPATHS

Similar to HYPERLINK_BOX_DUAL_BOUND_WITH_COMPLEX_XPATHS, except that the hyperlink input control supports conditional formatting.

HYPERLINK_BOX_NO_BINDING:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES (style="HYPERLINK_BOX_STYLE")? (accessKey="SINGLE_CHARACTER")? (tabIndex="TAB_INDEX">)?
     <button class="xdHyperlinkBoxButtonClickable">
         <img style="VERTICAL-ALIGN: bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="WIDTH: 5px"></span>ANY_STRING</span>

HYPERLINK_BOX_SINGLE_BOUND:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES (xd:disableEditing="yes")? tabIndex="-1" xd:boundProp="href" xd:binding="LEAF_XPATH1" (style="HYPERLINK_BOX_STYLE")?>
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(LEAF_XPATH1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(LEAF_XPATH1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accesskey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 <xsl:attribute name="title">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:value-of select="substring(normalize-space(LEAF_XPATH1), 0, 256)" /> 
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_SINGLE_BOUND_WITH_CONDITIONAL_FORMATTING:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES (xd:disableEditing="yes")? tabIndex="-1" xd:boundProp="href" xd:binding="LEAF_XPATH1">
     CHECK_FOR_GETDOM_BEGIN1
     HYPERLINK_BOX_CONDITIONAL_FORMATTING_WITH_STYLE
     CHECK_FOR_GETDOM_END1
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(LEAF_XPATH1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(LEAF_XPATH1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accessKey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 CHECK_FOR_GETDOM_BEGIN1
                 HYPERLINK_BOX_ANCHOR_CONDITIONAL_FORMATTING_WITH_STYLE
                 CHECK_FOR_GETDOM_END1
                 <xsl:attribute name="title">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:value-of select="substring(normalize-space(LEAF_XPATH1), 0, 256)" /> 
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_DUAL_BOUND:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES (xd:disableEditing="yes")? tabIndex="-1" xd:binding_secondary="LEAF_XPATH2" xd:boundPropSecondary="displaytext" xd:boundProp="href" xd:binding="LEAF_XPATH1" (style="HYPERLINK_BOX_STYLE")?>
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(LEAF_XPATH1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(LEAF_XPATH1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accessKey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 <xsl:attribute name="title">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:choose>
                     <xsl:when test="string-length(normalize-space(LEAF_XPATH2))=0">
                         <xsl:value-of select="substring(normalize-space(LEAF_XPATH1), 0, 256)" /> 
                     </xsl:when>
                     <xsl:otherwise>
                         <xsl:value-of select="substring(normalize-space(LEAF_XPATH2), 0, 256)" /> 
                     </xsl:otherwise>
                 </xsl:choose>
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_DUAL_BOUND_WITH_CONDITIONAL_FORMATTING:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES (xd:disableEditing="yes")? tabIndex="-1" xd:binding_secondary="LEAF_XPATH2" xd:boundPropSecondary="displaytext" xd:boundProp="href" xd:binding="LEAF_XPATH1">
     CHECK_FOR_GETDOM_BEGIN1
     HYPERLINK_BOX_CONDITIONAL_FORMATTING_WITH_STYLE
     CHECK_FOR_GETDOM_END1
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(LEAF_XPATH1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(LEAF_XPATH1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accessKey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 CHECK_FOR_GETDOM_BEGIN1
                 HYPERLINK_BOX_ANCHOR_CONDITIONAL_FORMATTING_WITH_STYLE
                 CHECK_FOR_GETDOM_END1
                 <xsl:attribute name="title">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="LEAF_XPATH1" /> 
                 </xsl:attribute>
                 <xsl:choose>
                     <xsl:when test="string-length(normalize-space(LEAF_XPATH2))=0">
                         <xsl:value-of select="substring(normalize-space(LEAF_XPATH1), 0, 256)" /> 
                     </xsl:when>
                     <xsl:otherwise>
                         <xsl:value-of select="substring(normalize-space(LEAF_XPATH2), 0, 256)" /> 
                     </xsl:otherwise>
                 </xsl:choose>
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_SINGLE_BOUND_WITH_COMPLEX_XPATHS:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES xd:disableEditing="yes" tabIndex="-1" xd:boundProp="href" xd:binding="STRING_XPATH_EXPRESSION1" (style="HYPERLINK_BOX_STYLE")?>
     (<xsl:if test="function-available('xdXDocument:getDOM')" />)?
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(STRING_XPATH_EXPRESSION1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(STRING_XPATH_EXPRESSION1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accessKey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 (<xsl:if test="function-available('xdXDocument:getDOM')" />)?
                 <xsl:attribute name="title">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:value-of select="substring(normalize-space(STRING_XPATH_EXPRESSION1), 0, 256)" /> 
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_SINGLE_BOUND_WITH_CONDITIONAL_FORMATTING_AND_COMPLEX_XPATHS:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES xd:disableEditing="yes" tabIndex="-1" xd:boundProp="href" xd:binding="STRING_XPATH_EXPRESSION1">
     CHECK_FOR_GETDOM_BEGIN1
     HYPERLINK_BOX_CONDITIONAL_FORMATTING_WITH_STYLE
     CHECK_FOR_GETDOM_END1
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(STRING_XPATH_EXPRESSION1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(STRING_XPATH_EXPRESSION1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accessKey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 CHECK_FOR_GETDOM_BEGIN1
                 HYPERLINK_BOX_ANCHOR_CONDITIONAL_FORMATTING_WITH_STYLE
                 CHECK_FOR_GETDOM_END1
                 <xsl:attribute name="title">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:value-of select="substring(normalize-space(STRING_XPATH_EXPRESSION1), 0, 256)" /> 
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_DUAL_BOUND_WITH_COMPLEX_XPATHS:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES xd:disableEditing="yes" tabIndex="-1" xd:binding_secondary="LEAF_XPATH2" xd:boundPropSecondary="displaytext" xd:boundProp="href" xd:binding="STRING_XPATH_EXPRESSION1" (style="HYPERLINK_BOX_STYLE")?>
     (<xsl:if test="function-available('xdXDocument:getDOM')" />)?
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(STRING_XPATH_EXPRESSION1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(STRING_XPATH_EXPRESSION1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accessKey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 (<xsl:if test="function-available('xdXDocument:getDOM')" />)?
                 <xsl:attribute name="title">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:choose>
                     <xsl:when test="string-length(normalize-space(LEAF_XPATH2))=0">
                         <xsl:value-of select="substring(normalize-space(STRING_XPATH_EXPRESSION1), 0, 256)" /> 
                     </xsl:when>
                     <xsl:otherwise>
                         <xsl:value-of select="substring(normalize-space(LEAF_XPATH2), 0, 256)" /> 
                     </xsl:otherwise>
                 </xsl:choose>
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_DUAL_BOUND_WITH_CONDITIONAL_FORMATTING_AND_COMPLEX_XPATHS:

 <span HYPERLINK_BOX_COMMON_ATTRIBUTES xd:disableEditing="yes" tabIndex="-1" xd:binding_secondary="LEAF_XPATH2" xd:boundPropSecondary="displaytext" xd:boundProp="href" xd:binding="STRING_XPATH_EXPRESSION1">
     CHECK_FOR_GETDOM_BEGIN1
     HYPERLINK_BOX_CONDITIONAL_FORMATTING_WITH_STYLE
     CHECK_FOR_GETDOM_END1
     <button class="xdHyperlinkBoxButtonClickable" tabIndex="TAB_INDEX1">
         (<xsl:if test="string-length(STRING_XPATH_EXPRESSION1)=0">
             <xsl:attribute name="accessKey">SINGLE_CHARACTER1</xsl:attribute>
         </xsl:if>)?
         <img style="vertical-align:bottom" src="res://infopath.exe/hyperlinkbox.png" /> 
     </button>
     <span style="width:5px;" /> 
     <xsl:choose>
         <xsl:when test="string-length(STRING_XPATH_EXPRESSION1)!=0">
             <A class="hyperlinkAnchor" tabIndex="TAB_INDEX1" (accessKey="SINGLE_CHARACTER1")? (style="(STYLE_COLOR;)?")?>
                 CHECK_FOR_GETDOM_BEGIN1
                 HYPERLINK_BOX_ANCHOR_CONDITIONAL_FORMATTING_WITH_STYLE
                 CHECK_FOR_GETDOM_END1
                 <xsl:attribute name="title">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:attribute name="href">
                     <xsl:value-of select="STRING_XPATH_EXPRESSION1" /> 
                 </xsl:attribute>
                 <xsl:choose>
                     <xsl:when test="string-length(normalize-space(LEAF_XPATH2))=0">
                         <xsl:value-of select="substring(normalize-space(STRING_XPATH_EXPRESSION1), 0, 256)" /> 
                     </xsl:when>
                     <xsl:otherwise>
                         <xsl:value-of select="substring(normalize-space(LEAF_XPATH2), 0, 256)" /> 
                     </xsl:otherwise>
                 </xsl:choose>
             </A>
         </xsl:when>
         <xsl:otherwise>ANY_STRING</xsl:otherwise> 
     </xsl:choose>
 </span>

HYPERLINK_BOX_CONDITIONAL_FORMATTING_STYLE: Semicolon-delimited list of (STYLE_TEXT_DECORATION?, STYLE_BACKGROUND_COLOR?, STYLE_FONT?, STYLE_COLOR?, STYLE_CAPTION)

HYPERLINK_BOX_ANCHOR_CONDITIONAL_FORMATTING_WITH_STYLE:

 <xsl:attribute name="style">(STYLE_COLOR;)?
     HYPERLINK_BOX_CONDITIONAL_FORMATTING
 </xsl:attribute>
 HYPERLINK_BOX_CONDITIONAL_DISABLING

HYPERLINK_BOX_CONDITIONAL_FORMATTING_WITH_STYLE:

 <xsl:attribute name="style">HYPERLINK_BOX_STYLE?
     HYPERLINK_BOX_CONDITIONAL_FORMATTING
 </xsl:attribute>
 HYPERLINK_BOX_CONDITIONAL_DISABLING

HYPERLINK_BOX_CONDITIONAL_FORMATTING:

 <xsl:choose>
     (<xsl:when test="BOOLEAN_XPATH_EXPRESSION">STYLE_DISPLAY_NONE; STYLE_CAPTION</xsl:when> | 
     <xsl:when test="BOOLEAN_XPATH_EXPRESSION">STYLE_CAPTION</xsl:when> | 
     <xsl:when test="BOOLEAN_XPATH_EXPRESSION">
         HYPERLINK_BOX_CONDITIONAL_FORMATTING_STYLE
     </xsl:when>)+ 
 </xsl:choose>

HYPERLINK_BOX_CONDITIONAL_DISABLING:

 (<xsl:choose>
     (<xsl:when test="BOOLEAN_XPATH_EXPRESSION"/> | 
     <xsl:when test="BOOLEAN_XPATH_EXPRESSION">
         <xsl:attribute name="xd:disableEditing">yes</xsl:attribute>
     </xsl:when>)+
 </xsl:choose>)?

HYPERLINK_BOX_COMMON_ATTRIBUTES:

 class="xdHyperlinkBox xdBehavior_Formatting xdHyperlinkBoxClickable" (title="ANY_STRING")? (tabStop="true")? xd:CtrlId="CONTROL_ID" xd:xctname="HyperlinkBox" (xd:postbackModel="POSTBACKMODEL")?

HYPERLINK_BOX_STYLE: Semicolon-delimited list of (STYLE_WIDTH?, STYLE_FONT?, STYLE_HEIGHT?, STYLE_BORDER?, STYLE_VERTICAL_ALIGN?, STYLE_TEXT_DECORATION?, STYLE_BACKGROUND_COLOR?, STYLE_COLOR?)

Within this control, any usage of STYLE_COLOR MUST yield the same value, except for the HYPERLINK_BOX_CONDITIONAL_FORMATTING_STYLE production.

Within this control, any usage of HYPERLINK_BOX_CONDITIONAL_FORMATTING MUST yield the same value.

Within this control, any usage of HYPERLINK_BOX_CONDITIONAL_DISABLING MUST yield the same value.

Within this control, if any optional unit in a production defines the accessKey attribute, all optional units in the production containing the accessKey attribute MUST have a non-empty yield.

The following table lists the control-specific attributes used by the hyperlink control.

Attribute

Section

xd:binding

2.4.2.6

xd:binding_secondary

2.4.2.37.2

xd:boundProp

2.4.2.9

xd:boundPropSecondary

2.4.2.37.3

xd:CtrlId

2.4.2.10

xd:disableEditing

2.4.2.12

xd:postbackModel

2.4.2.29

xd:xctname

2.4.2.35