{
reportSchemaError("s4s-att-must-appear", new Object[] { SchemaSymbols.ELT_KEYREF, SchemaSymbols.ATT_REFER }, paramElement);
this.fAttrChecker.returnAttrArray(arrayOfObject, paramXSDocumentInfo);
return;
}
UniqueOrKey localUniqueOrKey = null;
IdentityConstraint localIdentityConstraint = (IdentityConstraint)this.fSchemaHandler.getGlobalDecl(paramXSDocumentInfo, 5, localQName, paramElement);
if (localIdentityConstraint != null)
if ((localIdentityConstraint.getCategory() == 1) || (localIdentityConstraint.getCategory() == 3))
localUniqueOrKey = (UniqueOrKey)localIdentityConstraint;
else
reportSchemaError("src-resolve", new Object[] { localQName.rawname, "identity constraint key/unique" }, paramElement);
if (localUniqueOrKey == null)
{
this.fAttrChecker.returnAttrArray(arrayOfObject, paramXSDocumentInfo);
return;
}
KeyRef localKeyRef = new KeyRef(paramXSDocumentInfo.fTargetNamespace, str, paramXSElementDecl.fName, localUniqueOrKey);
traverseIdentityConstraint(localKeyRef, paramElement, paramXSDocumentInfo, arrayOfObject);
if (localUniqueOrKey.getFieldCount() != localKeyRef.getFieldCount())
reportSchemaError("c-props-correct.2", new Object[] { str, localUniqueOrKey.getIdentityConstraintName() }, paramElement);
else
paramSchemaGrammar.addIDConstraintDecl(paramXSElementDecl, localKeyRef);
this.fAttrChecker.returnAttrArray(arrayOfObject, paramXSDocumentInfo);
}