FOR 필드 함수는 TRUE, FALSE 또는 UNKNOWN의 결과 값 표현 및 지정을 평가합니다.
FOR는 반복 필드의 모든 인스턴스에서 반복되는 표현식을 쓸 수 있습니다. 인스턴스마다 Boolean 표현식을 처리하고 그 결과를 조합합니다.
FOR ALL Body.Invoice.Purchases."Item"[] AS I (I.Quantity <= 50)
일부 경우, 컨텍스트에서 해당 정보를 얻을 수 있기 때문에 이 구문이 불필요해 보이지만 다른 구문 조각과의 일관성을 위해 수행됩니다.
AS절은 이름 I를 반복 필드의 현재 인스턴스와 연관시킵니다. 이것은 C++과 같은 일부 오브젝트 지향 언어에서 사용되는 반복자 클래스의 개념과 비슷합니다. 괄호 안의 표현식은 Item 필드의 각 인스턴스에 대해 평가되는 술어입니다.
FOR ANY Body.Invoice.Purchases."Item"[] AS I (I.Title = 'The XML Companion')하위 술어는 TRUE로 평가됩니다. 그러나 다음 표현식은 FALSE를 리턴합니다.
FOR ANY Body.Invoice.Purchases."Item"[] AS I (I.Title = 'C Primer')C Primer는 이 송장(invoice)에 포함되지 않기 때문입니다. 이 인스턴스에서 송장(invoice)의 일부 항목에 책 제목 필드가 포함되지 않은 경우 하위 술어는 UNKNOWN을 리턴하며 한정 술어는 값 UNKNOWN을 리턴합니다.
FOR ANY Body.Invoice.Purchases."Item"[] AS I (I.Book IS NOT NULL AND I.Book.Title = 'C Primer')IS NOT NULL 술어는 Item 필드에 Book이 포함되지 않은 경우 하위 술어에서 FALSE 값이 리턴되도록 합니다.