私の最初の石鹸呼び出しは、すべてのリストを取得することです。
//init the soap call format - this gets us all the list on the mobiledev sharepoint
soapFormat = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
"<soap:Body>\n"
"<GetListCollection xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\" />\n"
"</soap:Body>\n"
"</soap:Envelope>\n"];
次に、探している特定のリストを見つけ、そのリストの内容を取得するために別の呼び出しを行います。
if([[attributeDict objectForKey:@"Title"] isEqualToString:@"SharePoint Data Test"]) {
//get the list name
NSString* strListName = [attributeDict objectForKey:@"Name"];
//reset the soap call to get the list data we are looking for
soapFormat = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
"<soap:Body>\n"
"<GetList xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">\n"
"<listName>%@</listName>\n"
"<QueryOptions>\n"
"<IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns>"
"<ViewAttributes Scope=\"RecursiveAll\"/>"
"</QueryOptions>\n"
"</GetList>\n"
"</soap:Body>\n"
"</soap:Envelope>\n", strListName];
[self getData];
しかし、これは再びすべてを返しています。探しているリストを取得するためだけにクエリを作成する必要がありますか? (また、寛大になりたい場合は、返されるデータにリストの内容は含まれず、最初の呼び出しのようなメタデータ/プロパティのみが含まれます。)