OwlCyberSecurity - MANAGER
Edit File: rfc5842.py
## # Copyright (c) 2005-2017 Apple Inc. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. ## """ RFC 5842 (Binding Extensions to WebDAV) XML Elements This module provides XML element definitions for use with WebDAV. See RFC 5842: http://www.ietf.org/rfc/rfc5842.txt """ __all__ = [] from txdav.xml.base import WebDAVTextElement, WebDAVElement from txdav.xml.element import dav_namespace, registerElement, registerElementClass @registerElement @registerElementClass class ResourceID (WebDAVElement): """ Unique identifier for a resource """ name = "resource-id" hidden = True protected = True allowed_children = {(dav_namespace, "href"): (0, 1)} @registerElement @registerElementClass class ParentSet (WebDAVElement): """ Identifies other bindings to a resource """ name = "parent-set" hidden = True protected = True allowed_children = {(dav_namespace, "parent"): (0, 1)} @registerElement @registerElementClass class Parent (WebDAVElement): name = "parent" allowed_children = { (dav_namespace, "href"): (1, 1), (dav_namespace, "segment"): (1, 1), } @registerElement @registerElementClass class Segment (WebDAVTextElement): name = "segment" # Problem: DAV:bind is also defined in RFC3744 but with our XML element parsing/mapping behavior # we are not allowed to have two class with the same qname(). So we are stuck. # # FIXME: redefine bind in rfc3744.py (with a note) to allow # sub-elements and so that can extend it here. # @registerElement # @registerElementClass # class BindResponse (WebDAVElement): # """ # Response body for a BIND request # """ # # name = "bind-response" # # allowed_children = { # # ANY # } # # # @registerElement # @registerElementClass # class UnbindRequest (WebDAVElement): # """ # Request body for a UNBIND request # """ # # name = "unbind" # # allowed_children = { # (dav_namespace, "segment") : (1, 1), # } # # # @registerElement # @registerElementClass # class Unbind (WebDAVElement): # """ # Response body for a UNBIND request # """ # # name = "unbind-response" # # allowed_children = { # # ANY # } # # # @registerElement # @registerElementClass # class RebindRequest (WebDAVElement): # """ # Request body for a REBIND request # """ # # name = "rebind" # # allowed_children = { # (dav_namespace, "segment") : (1, 1), # (dav_namespace, "href") : (1, 1), # } # # # @registerElement # @registerElementClass # class Rebind (WebDAVElement): # """ # Response body for a UNBIND request # """ # # name = "rebind-response" # # allowed_children = { # # ANY # }