srsName="EPSG:abcd" is GML-3 compliant but only in an application context where
EPSG:abcd points to a CRS definition. As of 2013, OGC best practice (documented here) is to use http URIs of the form http://www.opengis.net/def/crs/EPSG/0/4326.
The GML-3.0.0 spec (OCG 02-023r4) section v.2, page xiv states aliasing CRSs is kosher:
in GML we have found it convenient for an identified object to be able
to carry several “names” – i.e. labels either assigned by external
authorities or commonly used for an object. These may be distinguished
from each other by noting the “codeSpace” for a name, which allows a consumer of the information to select the appropriate name for them to use.
The GML-3.2.1 spec (OGC 03-105r1) section 10.1.3.2, page 56 says :
In general the attribute srsName [of type="anyURI"] points to a CRS
instance of gml:AbstractCoordinateReferenceSystem (see 12.2.3). For
well-known references it is not required that the CRS description
exists at the location the URI points to.
While there's no explicit definition of "well-known" within the GML-3 spec, using OGC 05-029r4 (section 4, page 8)'s definition of "well-known" as "not requiring resolution," so long as an application can internally identify a CRS from an URI , you might say the CRS is "well-known." Thus, using GML-3.1 & 3.2's somewhat complicated system of pointing to CRSs by name can be interpreted as the CRSs being well-known, and so
EPSG:abcd is perfectly valid. If you want to explore the exact methods with which GML points to a CRS via an srsName, see referenceSystems.xsd in http://schemas.opengis.net/gml/3.1.0/base/ and http://schemas.opengis.net/gml/3.2.1/ .
It is worth noting that after the publication of the white paper "OGC Identifiers-the Case for HTTP URIs" (OGC 10-124r1) came out in 2010, OGC specification documents more or less transitioned to that standard.