2011-04-26 4 views
0

사용자가 SharePoint CAML 쿼리를 전달할 수 있도록 허용하는 회사 내부 API를 작성 중입니다. 필자는 사용자의 쿼리를 사용하여 몇 가지 추가 요소를 추가 한 다음 최종 쿼리를 사용하여 SharePoint에서 필요한 데이터를 검색합니다.SharePoint : SPQuery 유효성 검사

예 :

<Query> 
    <Where> 
     <Eq> 
     <FieldRef Name='Category' /> 
     <Value Type='Choice'>Bug</Value> 
     </Eq> 
    </Where> 
</Query> 

가 내부적으로 내가 할 쿼리를 수정 :

<Query> 
    <Where> 
     <And> 
     <Eq> 
      <FieldRef Name='Category' /> 
      <Value Type='Choice'>Bug</Value> 
     </Eq> 
     <Eq> 
      <FieldRef Name='AssignedTo' /> 
      <Value Type='Integer'><UserID /></Value> 
     </Eq> 
     </And> 
    </Where> 
</Query> 

당신이가 보낸 쿼리를 확인하는 가장 좋은 방법에 대해 어떻게 생각하십니까

사용자에 전달 사용자?

+1

당신은 매우 용감합니다. 개발자로서, 나는 U2U CAML Query Builder를 사용하지 않고 CAML을 작성하는 것을 좋아하지 않는다. 사용자가 원시 CAML을 작성하도록 한 결과 만 상상할 수 있습니다. [전율] –

답변

2

허용하려는 쿼리가 상당히 제한적인 경우 유효한 쿼리가 무엇인지 나타내는 스키마를 만드는 것이 좋은 방법 일 수 있습니다. 그러면 XML이 해당 스키마에 따라 유효한지 확인할 수 있습니다. 또한, 코드에서 CAML Builder dll을 사용할 수 있다는 것을 알고 있습니다. 지금 당장이 예제를 찾을 수는 없지만 try/catch 블록에서 CAML 빌드 메소드를 사용하여 유효하지 않은 쿼리가 생성되는 것을 막을 수있는 방법이있을 수 있습니다.

또한 CAML 쿼리의 FieldRef가 표시 이름과 다를 수있는 필드의 내부 이름을 사용하여 작성해야한다는 사실을주의해야 할 수도 있습니다.