Добро пожаловать в чудесный мир Дава!
Приведенный выше XML выглядит правильно для меня. Но только пара общих указателей из моего собственного опыта ..
- PROPFIND недостаточно сам по себе. Клиенты также используют запросы HEAD и OPTIONS для обнаружения возможностей сервера.
- Как правило, крупный Dav-клиент выполняет около 10 http-запросов для одного пользовательского действия, такого как открытие или сохранение файла.
- ВСЕ запросы, отправленные клиентом, должны быть успешными и должны быть семантически правильными.
Распространенной ошибкой среди новых разработчиков, работающих с Дэвом, является просто заглушка ответов, например идентификаторов блокировок. Но никогда не делайте этого, каждый ответ должен быть семантически правильным, иначе логика в клиенте не удастся, и это прервет процесс.
К сожалению, зачастую сложно или невозможно получить доступ к журналам от клиента dav, поэтому может быть очень сложно понять, что не так. Единственный подход, который работает (imho), это убедиться, что вы реализуете все, и все правильно.
Возможно, вам будет проще всего использовать библиотеку сервера Dav, такую как SabreDav или Milton (мой (не бесплатный) проект - http://milton.io)