Пример #1
0
    def startElementNS(self, name, qname, attrs):
        if name == 'rss':
            if qname:
                from logging import InvalidNamespace
                self.log(
                    InvalidNamespace({
                        "parent": "root",
                        "element": name,
                        "namespace": qname
                    }))
                validatorBase.defaultNamespaces.append(qname)

        if name == 'feed' or name == 'entry':
            if qname == pie_namespace:
                from logging import ObsoleteNamespace
                self.log(ObsoleteNamespace({"element": "feed"}))
                validatorBase.defaultNamespaces.append(pie_namespace)
                from logging import TYPE_ATOM
                self.setFeedType(TYPE_ATOM)
            elif not qname:
                from logging import MissingNamespace
                self.log(MissingNamespace({"parent": "root", "element": name}))
            else:
                from logging import TYPE_ATOM
                self.setFeedType(TYPE_ATOM)
                validatorBase.defaultNamespaces.append(atom_namespace)
                if qname <> atom_namespace:
                    from logging import InvalidNamespace
                    self.log(
                        InvalidNamespace({
                            "parent": "root",
                            "element": name,
                            "namespace": qname
                        }))
                    validatorBase.defaultNamespaces.append(qname)

        if name == 'Channel':
            if not qname:
                from logging import MissingNamespace
                self.log(MissingNamespace({"parent": "root", "element": name}))
            elif qname != rss11_namespace:
                from logging import InvalidNamespace
                self.log(
                    InvalidNamespace({
                        "parent": "root",
                        "element": name,
                        "namespace": qname
                    }))
            else:
                validatorBase.defaultNamespaces.append(qname)
                from logging import TYPE_RSS1
                self.setFeedType(TYPE_RSS1)

        validatorBase.startElementNS(self, name, qname, attrs)
Пример #2
0
  def startElementNS(self, name, qname, attrs):
    if name=='rss':
      if qname:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
        validatorBase.defaultNamespaces.append(qname)

    if name=='feed' or name=='entry':
      if qname==pie_namespace:
        from logging import ObsoleteNamespace
        self.log(ObsoleteNamespace({"element":"feed"}))
        validatorBase.defaultNamespaces.append(pie_namespace)
        from logging import TYPE_ATOM
        self.setFeedType(TYPE_ATOM)
      elif not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      else:
        from logging import TYPE_ATOM
        self.setFeedType(TYPE_ATOM)
        validatorBase.defaultNamespaces.append(atom_namespace)
        if qname<>atom_namespace:
          from logging import InvalidNamespace
          self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
          validatorBase.defaultNamespaces.append(qname)

    if name=='Channel':
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      elif qname != rss11_namespace :
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
      else:
        validatorBase.defaultNamespaces.append(qname)
        from logging import TYPE_RSS1
        self.setFeedType(TYPE_RSS1)

    validatorBase.startElementNS(self, name, qname, attrs)
Пример #3
0
  def startElementNS(self, name, qname, attrs):
    if name=='rss':
      if qname:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)

    if name=='feed' or name=='entry':
      if self.namespace.has_key('atom'):
        from logging import AvoidNamespacePrefix
        self.log(AvoidNamespacePrefix({'prefix':'atom'}))
      if self.namespace.has_key('xhtml'):
        from logging import AvoidNamespacePrefix
        self.log(AvoidNamespacePrefix({'prefix':'xhtml'}))
      if qname==pie_namespace:
        from logging import ObsoleteNamespace
        self.log(ObsoleteNamespace({"element":"feed"}))
        self.dispatcher.defaultNamespaces.append(pie_namespace)
        from logging import TYPE_ATOM
        self.setFeedType(TYPE_ATOM)
      elif not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      else:
        if name=='feed':
          from logging import TYPE_ATOM
          self.setFeedType(TYPE_ATOM)
        else:
          from logging import TYPE_ATOM_ENTRY
          self.setFeedType(TYPE_ATOM_ENTRY)
        self.dispatcher.defaultNamespaces.append(atom_namespace)
        if qname<>atom_namespace:
          from logging import InvalidNamespace
          self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
          self.dispatcher.defaultNamespaces.append(qname)

    if name=='Channel':
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      elif qname != rss11_namespace :
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
      else:
        self.dispatcher.defaultNamespaces.append(qname)
        from logging import TYPE_RSS1
        self.setFeedType(TYPE_RSS1)

    if name=='kml':
      from logging import TYPE_KML20, TYPE_KML21, TYPE_KML22
      self.dispatcher.defaultNamespaces.append(qname)
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = kml20_namespace
        feedType = TYPE_KML20
      elif qname == kml20_namespace:
        feedType = TYPE_KML20
      elif qname == kml21_namespace:
        feedType = TYPE_KML21
      elif qname == kml22_namespace:
        feedType = TYPE_KML22
      elif qname != kml20_namespace and qname != kml21_namespace and qname != kml22_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        qname = kml22_namespace
        feedType = TYPE_KML22
      self.setFeedType(feedType)

    if name=='OpenSearchDescription':
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = opensearch_namespace
      elif qname != opensearch_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)
        qname = opensearch_namespace

    if name=='XRDS':
      from logging import TYPE_XRD
      self.setFeedType(TYPE_XRD)
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = xrds_namespace
      elif qname != xrds_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)
        qname = xrds_namespace

    validatorBase.startElementNS(self, name, qname, attrs)
Пример #4
0
  def startElementNS(self, name, qname, attrs):
    if name=='rss':
      if qname:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)

    if name=='feed' or name=='entry':
      if self.namespace.has_key('atom'):
        from logging import AvoidNamespacePrefix
        self.log(AvoidNamespacePrefix({'prefix':'atom'}))
      if self.namespace.has_key('xhtml'):
        from logging import AvoidNamespacePrefix
        self.log(AvoidNamespacePrefix({'prefix':'xhtml'}))
      if qname==pie_namespace:
        from logging import ObsoleteNamespace
        self.log(ObsoleteNamespace({"element":"feed"}))
        self.dispatcher.defaultNamespaces.append(pie_namespace)
        from logging import TYPE_ATOM
        self.setFeedType(TYPE_ATOM)
      elif not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      else:
        if name=='feed':
          from logging import TYPE_ATOM
          self.setFeedType(TYPE_ATOM)
        else:
          from logging import TYPE_ATOM_ENTRY
          self.setFeedType(TYPE_ATOM_ENTRY)
        self.dispatcher.defaultNamespaces.append(atom_namespace)
        if qname<>atom_namespace:
          from logging import InvalidNamespace
          self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
          self.dispatcher.defaultNamespaces.append(qname)

    if name=='Channel':
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      elif qname != rss11_namespace :
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
      else:
        self.dispatcher.defaultNamespaces.append(qname)
        from logging import TYPE_RSS1
        self.setFeedType(TYPE_RSS1)

    if name=='kml':
      from logging import TYPE_KML20, TYPE_KML21, TYPE_KML22
      self.dispatcher.defaultNamespaces.append(qname)
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = kml20_namespace
        feedType = TYPE_KML20
      elif qname == kml20_namespace:
        feedType = TYPE_KML20
      elif qname == kml21_namespace:
        feedType = TYPE_KML21
      elif qname == kml22_namespace:
        feedType = TYPE_KML22
      elif qname != kml20_namespace and qname != kml21_namespace and qname != kml22_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        qname = kml22_namespace
        feedType = TYPE_KML22
      self.setFeedType(feedType)

    if name=='OpenSearchDescription':
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = opensearch_namespace
      elif qname != opensearch_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)
        qname = opensearch_namespace

    if name=='XRDS':
      from logging import TYPE_XRD
      self.setFeedType(TYPE_XRD)
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = xrds_namespace
      elif qname != xrds_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)
        qname = xrds_namespace

    validatorBase.startElementNS(self, name, qname, attrs)
Пример #5
0
  def startElementNS(self, name, qname, attrs):
    if name=='rss':
      if qname:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)

    if name=='feed' or name=='entry':
      if qname==pie_namespace:
        from logging import ObsoleteNamespace
        self.log(ObsoleteNamespace({"element":"feed"}))
        self.dispatcher.defaultNamespaces.append(pie_namespace)
        from logging import TYPE_ATOM
        self.setFeedType(TYPE_ATOM)
      elif not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      else:
        if name=='feed':
          from logging import TYPE_ATOM
          self.setFeedType(TYPE_ATOM)
        else:
          from logging import TYPE_ATOM_ENTRY
          self.setFeedType(TYPE_ATOM_ENTRY)
        self.dispatcher.defaultNamespaces.append(atom_namespace)
        if qname<>atom_namespace:
          from logging import InvalidNamespace
          self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
          self.dispatcher.defaultNamespaces.append(qname)

    if name=='Channel':
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
      elif qname != rss11_namespace :
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"parent":"root", "element":name, "namespace":qname}))
      else:
        self.dispatcher.defaultNamespaces.append(qname)
        from logging import TYPE_RSS1
        self.setFeedType(TYPE_RSS1)

    if name=='OpenSearchDescription':
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = opensearch_namespace
      elif qname != opensearch_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)
        qname = opensearch_namespace

    if name=='XRDS':
      from logging import TYPE_XRD
      self.setFeedType(TYPE_XRD)
      if not qname:
        from logging import MissingNamespace
        self.log(MissingNamespace({"parent":"root", "element":name}))
        qname = xrds_namespace
      elif qname != xrds_namespace:
        from logging import InvalidNamespace
        self.log(InvalidNamespace({"element":name, "namespace":qname}))
        self.dispatcher.defaultNamespaces.append(qname)
        qname = xrds_namespace

    validatorBase.startElementNS(self, name, qname, attrs)
Пример #6
0
    def startElementNS(self, name, qname, attrs):
        if name == 'rss':
            if qname:
                from logging import InvalidNamespace
                self.log(
                    InvalidNamespace({
                        "parent": "root",
                        "element": name,
                        "namespace": qname
                    }))
                self.dispatcher.defaultNamespaces.append(qname)

        if name == 'feed' or name == 'entry':
            if qname == pie_namespace:
                from logging import ObsoleteNamespace
                self.log(ObsoleteNamespace({"element": "feed"}))
                self.dispatcher.defaultNamespaces.append(pie_namespace)
                from logging import TYPE_ATOM
                self.setFeedType(TYPE_ATOM)
            elif not qname:
                from logging import MissingNamespace
                self.log(MissingNamespace({"parent": "root", "element": name}))
            else:
                if name == 'feed':
                    from logging import TYPE_ATOM
                    self.setFeedType(TYPE_ATOM)
                else:
                    from logging import TYPE_ATOM_ENTRY
                    self.setFeedType(TYPE_ATOM_ENTRY)
                self.dispatcher.defaultNamespaces.append(atom_namespace)
                if qname <> atom_namespace:
                    from logging import InvalidNamespace
                    self.log(
                        InvalidNamespace({
                            "parent": "root",
                            "element": name,
                            "namespace": qname
                        }))
                    self.dispatcher.defaultNamespaces.append(qname)

        if name == 'Channel':
            if not qname:
                from logging import MissingNamespace
                self.log(MissingNamespace({"parent": "root", "element": name}))
            elif qname != rss11_namespace:
                from logging import InvalidNamespace
                self.log(
                    InvalidNamespace({
                        "parent": "root",
                        "element": name,
                        "namespace": qname
                    }))
            else:
                self.dispatcher.defaultNamespaces.append(qname)
                from logging import TYPE_RSS1
                self.setFeedType(TYPE_RSS1)

        if name == 'OpenSearchDescription':
            if not qname:
                from logging import MissingNamespace
                self.log(MissingNamespace({"parent": "root", "element": name}))
                qname = opensearch_namespace
            elif qname != opensearch_namespace:
                from logging import InvalidNamespace
                self.log(
                    InvalidNamespace({
                        "element": name,
                        "namespace": qname
                    }))
                self.dispatcher.defaultNamespaces.append(qname)
                qname = opensearch_namespace

        if name == 'XRDS':
            from logging import TYPE_XRD
            self.setFeedType(TYPE_XRD)
            if not qname:
                from logging import MissingNamespace
                self.log(MissingNamespace({"parent": "root", "element": name}))
                qname = xrds_namespace
            elif qname != xrds_namespace:
                from logging import InvalidNamespace
                self.log(
                    InvalidNamespace({
                        "element": name,
                        "namespace": qname
                    }))
                self.dispatcher.defaultNamespaces.append(qname)
                qname = xrds_namespace

        validatorBase.startElementNS(self, name, qname, attrs)