[xsl] XPath to check that a middle initial is either empty or is a letter followed by a period

Subject: [xsl] XPath to check that a middle initial is either empty or is a letter followed by a period
From: "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 2 Jun 2016 12:33:37 -0000
Hi Folks,

I need an XPath expression that returns true if the <MI> element is empty or,
if it's not empty, it contains an uppercase letter of the English alphabet
followed by a period. For example, this <MI> element is good:

	<MI></MI>

As is this:

	<MI>H.</MI>

This XPath seems to work fine:

	if (MI eq '') then true()
 	else if (exists(MI)) then matches(MI, '^[A-Z]\.$')
	else true()

Is there a better (shorter, simpler, more robust) XPath expression?

/Roger

Current Thread