throws InvalidWsrfWsdlException
{
String ref = propElem.getAttribute( "ref" );
if ( "".equals( ref ) )
{
throw new InvalidWsrfWsdlException(
"All element defs within the resource property document def must have a 'ref' attribute that points at a global element def." );
}
StringTokenizer tokenizer = new StringTokenizer( ref, ":" );
if ( tokenizer.countTokens() != 2 )
{
throw new InvalidWsrfWsdlException( "Value for xsd:element 'ref' attribute must be qualified via a namespace prefix." );
}
String propPrefix = tokenizer.nextToken();
String propLocalName = tokenizer.nextToken();
// TODO: write our own prefix resolver to eliminate dep on Xalan
PrefixResolver prefixResolver = new PrefixResolverDefault( schemaElem );
String propNamespace = prefixResolver.getNamespaceForPrefix( propPrefix );
if ( propNamespace == null )
{
throw new InvalidWsrfWsdlException( "Unable to resolve prefix '" + propPrefix + "' in xsd:element 'ref' attribute value." );
}
QName propName = new QName( propNamespace, propLocalName, propPrefix );
return propName;
}