}
return new ProcessingInstructionType(createUTF8String(pit.getTarget()));
}
case ATTRIBUTE_TEST: {
AttributeTestNode at = (AttributeTestNode) itemType;
if (at.getNameTest() == null) {
return AttributeType.ANYATTRIBUTE;
}
NameTestNode ntNode = at.getNameTest();
NameTest nt = NameTest.STAR_NAMETEST;
if (ntNode.getPrefix() == null && ntNode.getLocalName() == null) {
if (at.getTypeName() == null) {
return AttributeType.ANYATTRIBUTE;
}
} else {
String uri;
if (!"".equals(ntNode.getPrefix())) {
uri = currCtx.lookupNamespaceUri(ntNode.getPrefix());
if (uri == null) {
throw new SystemException(ErrorCode.XPST0081, ntNode.getSourceLocation());
}
} else {
uri = "";
}
nt = new NameTest(createUTF8String(uri), createUTF8String(ntNode.getLocalName()));
}
SchemaType cType = BuiltinTypeRegistry.XS_ANY_ATOMIC;
if (at.getTypeName() != null) {
cType = moduleCtx.lookupSchemaType(createQName(at.getTypeName()));
if (cType == null) {
throw new SystemException(ErrorCode.XPST0051, at.getSourceLocation());
}
}
return new AttributeType(nt, cType);
}