I'm not sure what you are looking for, but you may be able to find it using an interactive Python interpreter with tab-completion, such as IPython. That's how I found this:
import lxml.etree as ET
import io
content = '''<?xml
version='1.1'
encoding='utf-8'
?>
<!DOCTYPE root [
<!ATTLIST test
attr (A | B | C) 'B'
>
<!ELEMENT test (#PCDATA)>
<!ELEMENT root (test)*>
]>
<root></root>'''
tree = ET.parse(io.BytesIO(content))
info = tree.docinfo
dtd = info.internalDTD
for elt in dtd.elements():
print(elt)
print(elt.content)
print
# <lxml.etree._DTDElementDecl object name='test' prefix=None type='mixed' at 0xb73e044c>
# <lxml.etree._DTDElementContentDecl object name=None type='pcdata' occur='once' at 0xb73e04ac>
# <lxml.etree._DTDElementDecl object name='root' prefix=None type='element' at 0xb73e046c>
# <lxml.etree._DTDElementContentDecl object name='test' type='element' occur='mult' at 0xb73e04ac>