# $Id$ import os def run(func, arg, *cmd): i, o = func(cmd) i.write(arg) i.close() value = o.read() o.close() return value def relaxng(xml, rng): return run(os.popen4, xml, "xmllint", "--noout", "--relaxng", rng, "-") class rpki_updown_msg(object): def toXml(self): return (''' \n''' % (self.sender, self.recipient, self.msg_ref, self.type) ) + self.innerToXml() + '\n' class rpki_updown_err(rpki_updown_msg): def innerToXml(self): return '%d\n' % self.status class rpki_updown_list(rpki_updown_msg): def innerToXml(self): return "" class rpki_updown_list_response(rpki_updown_msg): def innerToXml(self): pass class rpki_updown_issue(rpki_updown_msg): def __init__(self): self.req_as = None self_req_ipv4 = None self.req_ipv6 = None def innerToXml(self): xml = ' \n' class rpki_issue_response(rpki_updown_msg): pass def main(): for x in xml: print x print relaxng(x, "up-down-medium-schema.rng") print "=====\n" # Ugly inline stuff here for initial testing xml = [ ''' 2001 17 [Readable text] ''', ''' deadbeef ''', ''' deadbeef deadbeef ''', ''' ''', ''' deadbeef deadbeef ''', ''' ''', ''' ''' ] main()