a G-iH@s9ddlZddlZddlZGdddeZddZddZGdd d eZGd d d eZGd d d eZ GdddeZ GdddZ Gddde Z Gddde Z GdddZGdddZGdddZGdddZddZd d!Zd"d#Zd$Zd%Zd&Zd'Zd$Zd%Zd&Zd'Zd(d)ZGd*d+d+ZGd,d-d-ZGd.d/d/Z Gd0d1d1Z!d2d3Z"Gd4d5d5Z#d6d7Z$gZ%d8d9Z&d:d;Z'dd?Z)d@dAZ*dBdCZ+dDdEZ,dFdGZ-dHdIZ.dJdKZ/dLdMZ0dNdOZ1dPdQZ2dRdSZ3dTdUZ4dVdWZ5dXdYZ6dZd[Z7d\d]Z8d^d_Z9d`daZ:dbdcZ;dddeZdjdkZ?dldmZ@dndoZAdpdqZBdrdsZCdtduZDdvdwZEdxdyZFdzd{ZGd|d}ZHd~dZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddZcddZdddZeddZfddZgddZhddZiddZjddÄZkddńZlddDŽZmddɄZndd˄Zodd̈́ZpddτZqddфZrddӄZsddՄZtddׄZuddلZvddۄZwdd݄Zxdd߄ZyddZzddZ{ddZ|ddZ}ddZ~ddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZdd Zd d Zd d ZddZddZddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd`daZdbdcZdddeZdfdgZdhdiZdjdkZdldmZdndoZdpdqZdrdsZÐdtduZĐdvdwZŐdxdyZƐdzd{Zǐd|d}ZȐd~dZɐddZʐddZːddZ̐ddZ͐ddZΐddZϐddZАddZѐddZҐddZӐddZԐddZՐddZ֐ddZאddZؐddZِddZڐddZېddZܐddZݐddZސddZߐddZddZddZddZddZddZddZddZddZddZddZddÄZdĐdńZdƐdDŽZdȐdɄZdʐd˄Zd̐d̈́ZdΐdτZdАdфZdҐdӄZdԐdՄZd֐dׄZdؐdلZdڐdۄZdܐd݄Zdސd߄ZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZ ddZ ddZ ddZ ddZ dd Zd d Zd d ZddZddZddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Z d.d/Z!d0d1Z"d2d3Z#d4d5Z$d6d7Z%d8d9Z&d:d;Z'd<d=Z(d>d?Z)d@dAZ*dBdCZ+dDdEZ,dFdGZ-dHdIZ.dJdKZ/dLdMZ0dNdOZ1dPdQZ2dRdSZ3dTdUZ4dVdWZ5dXdYZ6dZd[Z7d\d]Z8d^d_Z9d`daZ:dbdcZ;dddeZ<dfdgZ=dhdiZ>djdkZ?dldmZ@dndoZAdpdqZBdrdsZCdtduZDdvdwZEdxdyZFdzd{ZGd|d}ZHd~dZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddZcddZdddZeddZfddZgddZhddZiddZjddÄZkdĐdńZldƐdDŽZmdȐdɄZndʐd˄Zod̐d̈́ZpdΐdτZqdАdфZrdҐdӄZsdԐdՄZtd֐dׄZudؐdلZvdڐdۄZwdܐd݄Zxdސd߄ZyddZzddZ{ddZ|ddZ}ddZ~ddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZdd Zd d ZGd d d eZGdddeZGdddeZGdddeZGdddeZGdddZGdddeZGdddeZGdddeZGdddZGd d!d!eZGd"d#d#e ZGd$d%d%e ZGd&d'd'ZGd(d)d)ZGd*d+d+ZGd,d-d-e!ZGd.d/d/ZGd0d1d1ZGd2d3d3e ZGd4d5d5ZGd6d7d7e#ZGd8d9d9ZGd:d;d;eZGd<d=d=ZGd>d?d?ZdZd$Zd%Zd'Zd@Zd$Zd'ZdAZdBZdCZdDZdEZdFZdGZdHZdZd$Zd%ZdZd$Zd%Zd&ZdZd$Zd%Zd&Zd$Zd%Zd&Zd'ZǐdIZȐdJZɐdKZʐdLZːdMZ̐dNZd$Zd%Zd&Zd'ZѐdIZҐdJZӐdKZԐdLZՐdMZ֐dNZאdOZؐd@ZِdPZڐdQZېdRZܐdSZݐdTZސdUZߐdVZdWZdXZd$Zd%Zd&Zd'Zd$Zd%Zd&Zd'ZdIZdJZdZd$Zd%Zd&Zd'ZdIZdJZdKZdLZdMZdNZdOZd@ZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Z d`Z daZ dbZ dAZ dcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZdrZdsZdtZduZ dvZ!dwZ"dxZ#dyZ$dzZ%d{Z&d|Z'd}Z(d~Z)dZ*dZ+dZ,dBZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjdZkdZldZmdZndÐZodĐZpdŐZqdƐZrdǐZsdȐZtdɐZudʐZvdːZwd̐Zxd͐ZydΐZzdϐZ{dАZ|dѐZ}dҐZ~dӐZdԐZdՐZd֐ZdאZdؐZdِZdڐZdېZdܐZdݐZdސZdߐZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZÐdZĐdZŐdZƐdZǐdZȐdZɐdZʐdZːd Z̐d!Z͐d"Zΐd#Zϐd$ZАd%Zѐd&ZҐd'ZӐd(ZԐd)ZՐd*Z֐d+Zאd,Zؐd-Zِd.Zڐd/Zېd0Zܐd1Zݐd2Zސd3Zߐd4Zd5Zd6Zd7Zd8Zd9Zd:Zd;Zd<Zd=Zd>Zd?Zd@ZdAZdBZdCZdDZdEZdFZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Z d^Z d_Z d`Z daZ dbZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZdrZdsZdtZ duZ!dvZ"dwZ#dxZ$dyZ%dzZ&d{Z'd|Z(d}Z)d~Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjdZkdZldZmdZndÐZodĐZpdŐZqdƐZrdǐZsdȐZtdɐZudʐZvdːZwd̐Zxd͐ZydΐZzdϐZ{dАZ|dѐZ}dҐZ~dӐZdԐZdՐZd֐ZdאZdؐZdِZdڐZdېZdܐZdݐZdސZdߐZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZÐdZĐdZŐdZƐdZǐdZȐdZɐdZʐdZːd Z̐d!Z͐d"Zΐd#Zϐd$ZАd%Zѐd&ZҐd'ZӐd(ZԐd)ZՐd*Z֐d+Zאd,Zؐd-Zِd.Zڐd/Zېd0Zܐd1Zݐd2Zސd3Zߐd4Zd5Zd6Zd7Zd8Zd9Zd:Zd;Zd<Zd=Zd>Zd?Zd@ZdAZdBZdCZdDZdEZdFZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Z d^Z d_Z d`Z daZ dbZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZdrZdsZdtZ duZ!dvZ"dwZ#dxZ$dyZ%dzZ&d{Z'd|Z(d}Z)d~Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjdZkdZldZmdZndÐZodĐZpdŐZqdƐZrdǐZsdȐZtdɐZudʐZvdːZwd̐Zxd͐ZydΐZzdϐZ{dАZ|dѐZ}dҐZ~dӐZdԐZdՐZd֐ZdאZdؐZdِZdڐZdېZdܐZdݐZdސZdߐZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZÐdZĐdZŐdZƐdZǐdZȐdZɐdZdZd$Zd%ZdZd$Zd%Zd&ZdZd$Zd%ZԐdZdZd$Zd%Zd&Zd'ZڐdIZېdJZܐdKZݐdLZސdMZߐdNZdOZd@ZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZd$Zd%Zd'ZdLZdSZdAZdBZdCZd$Zd%Zd&Zd'Zd$Zd%Zd&Zd'ZdZd$Zd%Zd&Zd'ZdZd$Zd%Zd&ZdZd$Zd%Zd&Z d'Z dIZ d$Z d%Z d&Zd'ZdIZdJZdZd$Zd%Zd&Zd'ZdIZdJZdKZdLZdMZdNZdOZd@ZdPZdQZ dRZ!dSZ"dTZ#dUZ$dVZ%dWZ&dXZ'dYZ(dZZ)d[Z*d\Z+d]Z,d^Z-d_Z.d`Z/daZ0d$Z1d%Z2dZ3dZ4d$Z5d%Z6d&Z7d'Z8dIZ9dJZ:dKZ;dLZ<dMZ=dNZ>dOZ?d@Z@dPZAdQZBdRZCdSZDd$ZEd%ZFd&ZGd'ZHd$ZId%ZJd&ZKd'ZLd$ZMd%ZNd'ZOdLZPdSZQdAZRdBZSdCZTdDZUdÐZVdZWdEZXd ZYdFZZd!Z[d"Z\dGZ]d#Z^d$Z_d%Z`d&ZadHZbd'ZcdZdd$Zed%Zfd&Zgd'ZhdIZidZjd$Zkd%Zld'ZmdZnd$Zod%Zpd&Zqd'ZrdIZsdJZtdKZudLZvdMZwdNZxdOZyd@ZzdPZ{dQZ|dRZ}dSZ~dTZdZd$Zd%ZdZd$Zd%Zd&Zd'ZdIZdJZdKZdLZdMZdNZdOZd@ZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZdAZdcZddZdeZdfZdgZdhZdiZd$Zd%Zd'ZdLZdSZdAZdBZdCZdZd$Zd%Zd&Zd'ZdIZdJZdKZdLZdMZdNZdOZd@ZdPZdQZdRZdSZÐdTZĐdUZŐdVZƐdWZǐdXZȐdYZɐdZZʐd[Zːd\Z̐d]Z͐d^Zΐd_Zϐd`ZАdaZѐdbZҐdAZӐdcZԐddZՐdeZ֐dfZאdgZؐdhZِdiZڐdjZېdkZܐdlZݐdmZސdnZߐdoZdpZdZd$Zd%Zd&Zd'ZdIZdJZdKZdLZdMZdNZdOZd@ZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZdZZd[Zd\Zd$Zd%Zd'ZdLZdDZdÐZdZdZd$Zd%Zd&Zd'ZdIZdJZ dKZ d$Z d%Z d&Z d'ZdIZdJZdKZdLZdMZdNZdOZd@ZdPZdQZdRZdSZdTZdUZdVZdWZdXZdYZ dZZ!d[Z"d\Z#d]Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2d$Z3dZ4d$Z5d%Z6d&Z7dZ8d$Z9d%Z:d&Z;d'Z<dIZ=d$Z>d%Z?d&Z@d'ZAdIZBdJZCdKZDdLZEdMZFdNZGdOZHd@ZIdPZJdQZKdRZLdSZMdTZNdUZOdVZPdWZQdXZRdYZSdZZTd[ZUd\ZVd]ZWd^ZXd_ZYd`ZZdaZ[dbZ\dAZ]dcZ^d(Z_dZ`d$Zad%Zbd&Zcd'ZddIZedJZfdKZgdLZhdMZidZjd$Zkd%Zld&Zmd'ZndIZodJZpdKZqdLZrdMZsdNZtdOZud@ZvdPZwdQZxdRZydSZzdTZ{dUZ|dVZ}dWZ~dXZdYZdZZd[Zd\Zd]ZdS()Nc@s eZdZdS) libxmlErrorN)__name__ __module__ __qualname__rr-/usr/lib64/python3.9/site-packages/libxml2.pyrrcCs8z$ttj}|dkr"|dkr"WdSWnYdS0dS)NZ PyCObject PyCapsuler)type_objr)objnrrr checkWrapper s  rcCst|}|dkrtj|S|SNr)idsysmaxsize)oirrrpos_ids rc@seZdZddZddZdS) treeErrorcCs ||_dSNmsgselfrrrr__init__sztreeError.__init__cCs|jSrrrrrr__str__!sztreeError.__str__Nrrrrrrrrrrsrc@seZdZddZddZdS) parserErrorcCs ||_dSrrrrrrr%szparserError.__init__cCs|jSrrrrrrr'szparserError.__str__Nr rrrrr!$sr!c@seZdZddZddZdS)uriErrorcCs ||_dSrrrrrrr+szuriError.__init__cCs|jSrrrrrrr-szuriError.__str__Nr rrrrr"*sr"c@seZdZddZddZdS) xpathErrorcCs ||_dSrrrrrrr1szxpathError.__init__cCs|jSrrrrrrr3szxpathError.__str__Nr rrrrr#0sr#c@s8eZdZddZddZddZd dd Zdd d Zd S) ioWrappercCs||_d|_dSr)_ioWrapper__io_orr rrrr7szioWrapper.__init__cCs"|jdkrdS|jd|_dSNr)r%closerrrrio_close;s   zioWrapper.io_closecCs|jdkrdS|jdSr()r%flushrrrrio_flushBs  zioWrapper.io_flushr)cCs|jdkrdSz$|dkr$|j}n |j|}WnLty~ddl}|d}tdt|td|j|jdkYdS0|S)Nr)rr zfailed to read from Python:zon IO:)r%read Exceptionrexc_infoprintr )rlenretrerrrio_readHs      zioWrapper.io_readcCs0|jdkrdS|dkr"|j|S|j||Sr()r%write)rstrr2rrrio_writeZs   zioWrapper.io_writeN)r))r))rrrrr+r-r5r8rrrrr$6s  r$c@s&eZdZd ddZddZddZdS) ioReadWrappercCst||t|||_dSr)r$r libxml2modxmlCreateInputBufferr&)rr encrrrrbs zioReadWrapper.__init__cCs0td||jdkr&t|jd|_dS)N__del__)r1r+r&r;xmlFreeParserInputBufferrrrrr>fs   zioReadWrapper.__del__cCs(||jdkrt|jd|_dSr)r+r&r;r?rrrrr*ms  zioReadWrapper.closeN)r:)rrrrr>r*rrrrr9as r9c@s.eZdZd ddZddZddZdd Zd S) ioWriteWrapperr:cCst|tdkr tdd|_ntt|jdkrbt|}|dkrNt||n t||||_n2t|}|dkrt||n t||||_dS)Nr:zwrite io from a stringr ) r r1rrr;ZoutputBufferGetPythonFiler$rr&)rr r=filerrrrts    zioWriteWrapper.__init__cCs(||jdkrt|jd|_dSr)r+r&r;xmlOutputBufferCloserrrrr>s  zioWriteWrapper.__del__cCs(||jdkrt|jd|_dSrr-r&r;rBrrrrr,s  zioWriteWrapper.flushcCs(||jdkrt|jd|_dSrrCrrrrr*s  zioWriteWrapper.closeN)r:)rrrrr>r,r*rrrrr@ss r@c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"dZd#d$Zd%d&Zd'd(Zd)S)* SAXCallbackzBase class for SAX handlerscCsdS)z#called at the start of the documentNrrrrr startDocumentszSAXCallback.startDocumentcCsdS)z!called at the end of the documentNrrrrr endDocumentszSAXCallback.endDocumentcCsdS)zcalled at the start of every element, tag is the name of the element, attrs is a dictionary of the element's attributesNr)rtagattrsrrr startElementszSAXCallback.startElementcCsdS)zOcalled at the start of every element, tag is the name of the elementNr)rrGrrr endElementszSAXCallback.endElementcCsdS)zcalled when character data have been read, data is the string containing the data, multiple consecutive characters() callback are possible.Nrrdatarrr charactersszSAXCallback.characterscCsdS)zcalled when CDATA section have been read, data is the string containing the data, multiple consecutive cdataBlock() callback are possible.NrrKrrr cdataBlockszSAXCallback.cdataBlockcCsdS)z.called when an entity reference has been foundNrrnamerrr referenceszSAXCallback.referencecCsdS)z>called when potentially ignorable white spaces have been foundNrrKrrrignorableWhitespaceszSAXCallback.ignorableWhitespacecCsdS)zqcalled when a PI has been found, target contains the PI name and data is the associated data in the PINr)rtargetrLrrrprocessingInstructionsz!SAXCallback.processingInstructioncCsdS)zBcalled when a comment has been found, content contains the commentNrrcontentrrrcommentszSAXCallback.commentcCsdS)zcalled when a DOCTYPE declaration has been found, name is the DTD name and externalID, systemID are the DTD public and system identifier for that DTd if availableNrrrP externalIDsystemIDrrrexternalSubsetszSAXCallback.externalSubsetcCsdS)zcalled when a DOCTYPE declaration has been found, name is the DTD name and externalID, systemID are the DTD public and system identifier for that DTD if availableNrrXrrrinternalSubsetszSAXCallback.internalSubsetcCsdS)acalled when an ENTITY declaration has been found, name is the entity name and externalID, systemID are the entity public and system identifier for that entity if available, type indicates the entity type, and content reports it's string contentNr)rrPr rYrZrVrrr entityDeclszSAXCallback.entityDeclcCsdS)zcalled when an NOTATION declaration has been found, name is the notation name and externalID, systemID are the notation public and system identifier for that notation if availableNrrXrrr notationDeclszSAXCallback.notationDeclcCsdS)z2called when an ATTRIBUTE definition has been foundNr)relemrPr ZdefiZ defaultValueZnameListrrr attributeDeclszSAXCallback.attributeDeclcCsdS)z0called when an ELEMENT definition has been foundNr)rrPr rVrrr elementDeclszSAXCallback.elementDeclcCsdS)acalled when an unparsed ENTITY declaration has been found, name is the entity name and publicId,, systemID are the entity public and system identifier for that entity if available, and notationName indicate the associated NOTATIONNr)rrPZpublicIdrZ notationNamerrrr]scCsdSrrrrrrwarningszSAXCallback.warningcCs t|dSrr!rrrrerrorszSAXCallback.errorcCs t|dSrrdrrrr fatalErrorszSAXCallback.fatalErrorN)rrr__doc__rErFrIrJrMrNrQrRrTrWr[r\r]r^r`rarcrerfrrrrrDs*rDc@seZdZdCddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZeZddZddZddZd dlZeejd d!d"krd#d$Zneeddd%Zee ddd&Zee ddd'Zee ddd(Zee ddd)Zee ddd*Zeeddd+Zeeddd,Zeeddd-Z eeddd.Z!dDd/d0Z"dEd1d2Z#dFd3d4Z$dGd5d6Z%d7d8Z&d9d:Z'd;d<Z(d=d>Z)d?d@Z*e)Z+dAdBZ,dS)HxmlCoreNcCs|dkr||_dSd|_dSrr&r'rrrr szxmlCore.__init__cCs0|dkr dSt|j|j}|dkr(dS|dkS)NFTr;ZcompareNodesEqualr&rotherr3rrr__eq__s zxmlCore.__eq__cCs"|dkr dSt|j|j}| S)NTrjrkrrr__ne__szxmlCore.__ne__cCst|j}|Sr)r;ZnodeHashr&rr3rrr__hash__s zxmlCore.__hash__cCs|Sr) serializerrrrr"szxmlCore.__str__cCs t|j}|dkrdSt|Sr)r;parentr&nodeWraprorrr get_parent$s zxmlCore.get_parentcCs t|j}|dkrdSt|Sr)r;childrenr&rsrorrr get_children)s zxmlCore.get_childrencCs t|j}|dkrdSt|Sr)r;lastr&rsrorrrget_last.s zxmlCore.get_lastcCs t|j}|dkrdSt|Sr)r;nextr&rsrorrrget_next3s zxmlCore.get_nextcCs"t|j}|dkrdSt|dSNr )r; propertiesr&xmlAttrrorrrget_properties8s zxmlCore.get_propertiescCs t|j}|dkrdSt|Sr)r;prevr&rsrorrrget_prev=s zxmlCore.get_prevcCs t|jSrr;xmlNodeGetContentr&rrrr get_contentBszxmlCore.get_contentcCs t|jSr)r;rPr&rrrrget_nameEszxmlCore.get_namecCs t|jSr)r;r r&rrrrget_typeGszxmlCore.get_typecCs8t|j}|dkr.|jdvr*t|jdSdSt|dS)N) document_xml document_htmlr|)r;docr&r xmlDocrorrrget_docIs    zxmlCore.get_docrg@cCs|dkr(t|j}|dkr dSt|S|dkrRt|j}|dkrHdSt|dS|dkrzt|j}|dkrrdSt|S|dkrt|j}|dkrdSt|S|dkrt|j}|dkrdSt|S|dkrt |j}|dkrdSt|S|dkr t |jS|d kr t |jS|d kr6t |jS|d krt |j}|dkr~|j d ksn|j d krzt|jdSdSt|dSt|dS)Nrrr}r|rurwryrrVrPr rrr)r;rrr&rsr}r~rurwryrrrPr rrAttributeError)rattrr3rrr __getattr__WsX                   zxmlCore.__getattr__z Parent nodezFirst child nodezLast sibling nodezNext sibling nodezPrevious sibling nodezList of propertieszContent of this nodez Node namez Node typez!The document this node belongs tocCst|j||Sr)r;Z serializeNoder&)rencodingformatrrrrqszxmlCore.serializecCst|j|||Sr)r;Z saveNodeTor&)rrArrrrrsaveToszxmlCore.saveTocCs2|rdd|D}t|j||dk||dkS)NcSsg|] }|jqSrri.0rrrr rz&xmlCore.c14nMemory..r)r;ZxmlC14NDocDumpMemoryrr&)rnodes exclusiveprefixes with_commentsrrr c14nMemoryszxmlCore.c14nMemorycCs4|rdd|D}t|j||dk||dk|S)NcSsg|] }|jqSrrirrrrrrz&xmlCore.c14nSaveTo..r)r;ZxmlC14NDocSaveTorr&)rrArrrrrrr c14nSaveToszxmlCore.c14nSaveTocCs:|j}|dkrdS|}||||}||Sr)rxpathNewContextsetContextNode xpathEvalxpathFreeContext)rexprrctxtresrrrrs  zxmlCore.xpathEvalcCs ||Sr)r)rrrrr xpathEval2szxmlCore.xpathEval2cCs(t|j|}|durdSt|d}|S)a5 Remove a namespace definition from a node. If href is None, remove all of the ns definitions on that node. The removed namespaces are returned as a linked list. Note: If any child nodes referred to the removed namespaces, they will be left with dangling links. You should call renconciliateNs() to fix those pointers. Note: This method does not free memory taken by the ns definitions. You will need to free it manually with the freeNsList() method on the returns xmlNs object. Nr|)r;ZxmlNodeRemoveNsDefr&xmlNs)rhrefr3Z _xmlCore__tmprrr removeNsDefs  zxmlCore.removeNsDefcCst|Sr)xmlCoreDepthFirstItertorrrrrwalk_depth_firstszxmlCore.walk_depth_firstcCst|Sr)xmlCoreBreadthFirstItertorrrrrwalk_breadth_firstszxmlCore.walk_breadth_firstcCs.z|jjWn Yn0t|jdSr)rZ_ctxtrr; xmlFreeDocr&rrrrfrees z xmlCore.free)N)Nr)Nr)NrNr)NrNr)-rrrrrmrnrprrtrvrxrzrrr getContentrrrrfloatversionrpropertyrrrurwryrr}rVrPr rrqrrrrrrrr__iter__rrrrrrh s`   /    rhc@s(eZdZddZddZddZeZdS)rcCs||_g|_dSrnodeparentsrrrrrrsz!xmlCoreDepthFirstItertor.__init__cCs|Srrrrrrrsz!xmlCoreDepthFirstItertor.__iter__cCs\|jr(|j}|j|j|jj|_|Sz|j}WntyLtYn0|j|_qdSr)rrappendrupop IndexError StopIterationryrr3rrrrr__next__s   z!xmlCoreDepthFirstItertor.__next__Nrrrrrrryrrrrrs rc@s(eZdZddZddZddZeZdS)rcCs||_g|_dSrrrrrrr'sz#xmlCoreBreadthFirstItertor.__init__cCs|Srrrrrrr*sz#xmlCoreBreadthFirstItertor.__iter__cCs\|jr(|j}|j|j|jj|_|Sz|j}WntyLtYn0|j|_qdSr)rrrryrrrrurrrrr,s   z#xmlCoreBreadthFirstItertor.__next__Nrrrrrr&s rcCst|}|dks|dkr$t|dS|dkr6t|dS|dddkrPt|dS|dkrbt|dS|d krtt|dS|d krt|dS|d krt|dS|d krt |dSt|dS) Nelementtextr|Z attributerZdocument namespaceZ elem_declZattribute_declZ entity_decldtd) r;r xmlNoder~rr xmlElement xmlAttribute xmlEntityxmlDtd)rrPrrrrs=s$         rscCs|t|}|tgkr&ttt|}|S|tdkrHttt|}t|S|tdksl|tdksl|tdkrp|St|SdS)Nrr:rg)r listmapxpathObjectRettuplers)rZotyper3rrrrRs  $rcCst||||}dSr)r;xmlRegisterXPathFunction)rrPns_urifr3rrrregisterXPathFunctionbsrr rcCs8ddl}d|jvr t||}nddl}|||}|S)zpRegister a Python written function to for error reporting. The function is called back as f(ctx, error). rNlibxslt)rmodulesr;ZxmlRegisterErrorHandlerrregisterErrorHandler)rctxrr3rrrrrxs   rc@s6eZdZd ddZddZddZdd Zd d ZdS) parserCtxtCoreNcCs|dkr||_dSd|_dSrrir'rrrrszparserCtxtCore.__init__cCs |jdkrt|jd|_dSrr&r;ZxmlFreeParserCtxtrrrrr>s  zparserCtxtCore.__del__cCst|j||dS)zRegister an error handler that will be called back as f(arg,msg,severity,reserved). @reserved is currently always None.N)r;ZxmlParserCtxtSetErrorHandlerr&rrargrrrsetErrorHandlerszparserCtxtCore.setErrorHandlercCs t|jS)WReturn (f,arg) as previously registered with setErrorHandler or (None,None).)r;ZxmlParserCtxtGetErrorHandlerr&rrrrgetErrorHandlerszparserCtxtCore.getErrorHandlercCst|j|S)z(Register a local catalog with the parser)r;addLocalCatalogr&rZurirrrrszparserCtxtCore.addLocalCatalog)N)rrrrr>rrrrrrrrs  rc@seZdZddZdddZdS) ValidCtxtCorecOsdSrrrargskwrrrrszValidCtxtCore.__init__NcCst|j|||dS)zy Register error and warning handlers for DTD validation. These will be called back as f(msg,arg) N)r;ZxmlSetValidErrorsr&rZerr_funcZ warn_funcrrrrsetValidityErrorHandlersz%ValidCtxtCore.setValidityErrorHandler)Nrrrrrrrrrrsrc@seZdZddZdddZdS)SchemaValidCtxtCorecOsdSrrrrrrrszSchemaValidCtxtCore.__init__NcCst|j|||dS)z| Register error and warning handlers for Schema validation. These will be called back as f(msg,arg) N)r;ZxmlSchemaSetValidErrorsr&rrrrrsz+SchemaValidCtxtCore.setValidityErrorHandler)Nrrrrrrsrc@seZdZddZdddZdS)relaxNgValidCtxtCorecOsdSrrrrrrrszrelaxNgValidCtxtCore.__init__NcCst|j|||dS)z} Register error and warning handlers for RelaxNG validation. These will be called back as f(msg,arg) N)r;ZxmlRelaxNGSetValidErrorsr&rrrrrsz,relaxNgValidCtxtCore.setValidityErrorHandler)NrrrrrrsrcCs|\}}||||t|S)z)Intermediate callback to wrap the locator)xmlTextReaderLocator)Zxxx_todo_changemerZseverityZlocatorrrrrr_xmlTextReaderErrorFuncsrc@s.eZdZd ddZddZddZdd ZdS) xmlTextReaderCoreNcCs"d|_|dkr||_dSd|_dSr)inputr&r'rrrrszxmlTextReaderCore.__init__cCs |jdkrt|jd|_dSrr&r;ZxmlFreeTextReaderrrrrr>s  zxmlTextReaderCore.__del__cCs2|durt|jddnt|jt||fdS)z]Register an error handler that will be called back as f(arg,msg,severity,locator).N)r;ZxmlTextReaderSetErrorHandlerr&rrrrrSetErrorHandlers z!xmlTextReaderCore.SetErrorHandlercCs$t|j\}}|durdS|SdS)rN)NN)r;ZxmlTextReaderGetErrorHandlerr&rrrrGetErrorHandlersz!xmlTextReaderCore.GetErrorHandler)N)rrrrr>rrrrrrrs  rcCs tdSrr;ZxmlPythonCleanupParserrrrr cleanupParsersrcCs dd}t|t|dS)NcSs*ttD]}||}|dur|SqdSr)reversed__input_callbacks)URIcbrrrrfindOpenCallbacks z/registerInputCallback..findOpenCallback)r;ZxmlRegisterInputCallbackrr)funcrrrrregisterInputCallbacks rcCs,ttdkrtttdkr(tdSr)r2rrr;ZxmlUnregisterInputCallbackrrrrpopInputCallbackss  rcCs&t||}|durtdt|dS)z8Create a parser context for an HTML in-memory document. Nz#htmlCreateMemoryParserCtxt() failedr|)r;htmlCreateMemoryParserCtxtr! parserCtxtbuffersizer3rrrrs rcCst|}|S)zISet and return the previous value for handling HTML omitted tags. )r;htmlHandleOmittedElemvalr3rrrrs rcCst|}|S)z0Check if an attribute is of content type Script )r;htmlIsScriptAttributerPr3rrrr%s rcCs"t}|durtdt|dS).Allocate and initialize a new parser context. NzhtmlNewParserCtxt() failedr|)r;htmlNewParserCtxtr!rr3rrrr*srcCs&t||}|durtdt|dS)z3parse an HTML in-memory document and build a tree. NzhtmlParseDoc() failedr|)r; htmlParseDocr!r)currr3rrrr0s rcCs&t||}|durtdt|dS)zparse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. NzhtmlParseFile() failedr|)r; htmlParseFiler!rfilenamerr3rrrr6s rcCs*t||||}|dur tdt|dS)2parse an XML in-memory document and build a tree. NzhtmlReadDoc() failedr|)r; htmlReadDocrrrURLroptionsr3rrrr >sr cCs*t||||}|dur tdt|dS)zparse an HTML from a file descriptor and build a tree. NOTE that the file descriptor will not be closed when the reader is closed or reset. NzhtmlReadFd() failedr|)r; htmlReadFdrrfdr rrr3rrrrDsrcCs(t|||}|durtdt|dS)6parse an XML file from the filesystem or the network. NzhtmlReadFile() failedr|)r; htmlReadFilerrr rrr3rrrrLsrcCs,t|||||}|dur"tdt|dS)r NzhtmlReadMemory() failedr|)r;htmlReadMemoryrrrrr rrr3rrrrRsrcCst|}|S)z7Determine if a given attribute is a boolean attribute. )r;htmlIsBooleanAttrrrrrr\s rcCs&t||}|durtdt|dS)zCreates a new HTML document NzhtmlNewDoc() failedr|)r; htmlNewDocrrr ExternalIDr3rrrras rcCs&t||}|durtdt|dS)zWCreates a new HTML document without a DTD node if @URI and @ExternalID are None NzhtmlNewDocNoDtD() failedr|)r;htmlNewDocNoDtDrrrrrrrgs rcCst|}|S)aSet the default version of SAX used globally by the library. By default, during initialization the default is set to 2. Note that it is generally a better coding style to use xmlSAXVersion() to set up the version explicitly for a given parsing context. )r;ZxmlSAXDefaultVersionrr3rrrSAXDefaultVersionrs rcCs tdS)z$Initialize the default SAX2 handler N)r;ZxmlDefaultSAXHandlerInitrrrrdefaultSAXHandlerInit{srcCs tdSz#Initialize the default SAX handler N)r;docbDefaultSAXHandlerInitrrrrr sr cCs tdSr)r;htmlDefaultSAXHandlerInitrrrrr!sr!cCst|||}|S)zAdd an entry in the catalog, it may overwrite existing but different entries. If called before any other catalog routine, allows to override the default shared catalog put in place by xmlInitializeCatalog(); )r;Z xmlCatalogAdd)r origreplacer3rrr catalogAddsr$cCs tdS)z0Free up all the memory associated with catalogs N)r;ZxmlCatalogCleanuprrrrcatalogCleanupsr%cCs t}|Sz1Convert all the SGML catalog entries as XML ones )r;ZxmlCatalogConvertrrrrcatalogConvertsr'cCs|dur|t|dS)z7Dump all the global catalog content to the given file. N)r,r;ZxmlCatalogDump)outrrr catalogDumpsr)cCst|}|S)zoTry to lookup the catalog reference associated to a public ID DEPRECATED, use xmlCatalogResolvePublic() )r;ZxmlCatalogGetPublicpubIDr3rrrcatalogGetPublics r,cCst|}|S)zoTry to lookup the catalog reference associated to a system ID DEPRECATED, use xmlCatalogResolveSystem() )r;ZxmlCatalogGetSystemsysIDr3rrrcatalogGetSystems r/cCst|}|Sz!Remove an entry from the catalog )r;ZxmlCatalogRemovevaluer3rrr catalogRemoves r3cCst||}|Sz:Do a complete resolution lookup of an External Identifier )r;ZxmlCatalogResolve)r+r.r3rrrcatalogResolves r5cCst|}|S)zETry to lookup the catalog reference associated to a public ID )r;ZxmlCatalogResolvePublicr*rrrcatalogResolvePublics r6cCst|}|Sz3Try to lookup the catalog resource for a system ID )r;ZxmlCatalogResolveSystemr-rrrcatalogResolveSystems r8cCst|}|Sz*Do a complete resolution lookup of an URI )r;ZxmlCatalogResolveURIrr3rrrcatalogResolveURIs r;cCst|}|S)z[Used to set the debug level for catalog operation, 0 disable debugging, 1 enable it )r;ZxmlCatalogSetDebug)levelr3rrrcatalogSetDebugs r=cCs tdS)zDo the catalog initialization. this function is not thread safe, catalog initialization should preferably be done once at startup N)r;ZxmlInitializeCatalogrrrrinitializeCatalogsr>cCs$t|}|durtdt|dS)zLoad the catalog and build the associated data structures. This can be either an XML Catalog or an SGML Catalog It will recurse in SGML CATALOG entries. On the other hand XML Catalogs are not handled recursively. NzxmlLoadACatalog() failedr|)r;ZxmlLoadACatalogrcatalogr r3rrr loadACatalogs rAcCst|}|S)zLoad the catalog and makes its definitions effective for the default external entity loader. It will recurse in SGML CATALOG entries. this function is not thread safe, catalog initialization should preferably be done once at startup )r;ZxmlLoadCatalogr@rrr loadCatalogs rBcCst|dS)zLoad the catalogs and makes their definitions effective for the default external entity loader. this function is not thread safe, catalog initialization should preferably be done once at startup N)r;ZxmlLoadCatalogs)Zpathssrrr loadCatalogssrCcCs$t|}|durtdt|dS)zLoad an SGML super catalog. It won't expand CATALOG or DELEGATE references. This is only needed for manipulating SGML Super Catalogs like adding and removing CATALOG or DELEGATE entries. Nz xmlLoadSGMLSuperCatalog() failedr|)r;ZxmlLoadSGMLSuperCatalogrr?r@rrrloadSGMLSuperCatalogs rDcCs$t|}|durtdt|dS)zcreate a new Catalog. NzxmlNewCatalog() failedr|)r;Z xmlNewCatalogrr?)Zsgmlr3rrr newCatalogs rEcCs$t|}|durtdt|dS)zjparse an XML file and build a tree. It's like xmlParseFile() except it bypass all catalog lookups. NzxmlParseCatalogFile() failedr|)r;ZxmlParseCatalogFiler!rr@rrrparseCatalogFiles rFcCst|}|S)zSThis function is DEPRECATED. Use xmlIsBaseChar_ch or xmlIsBaseCharQ instead )r;Z xmlIsBaseCharZchr3rrr isBaseChars rHcCst|}|S)zMThis function is DEPRECATED. Use xmlIsBlank_ch or xmlIsBlankQ instead )r;Z xmlIsBlankrGrrrisBlank s rIcCst|}|S)zKThis function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ instead )r;Z xmlIsCharrGrrrisChars rJcCst|}|S)z9This function is DEPRECATED. Use xmlIsCombiningQ instead )r;ZxmlIsCombiningrGrrr isCombinings rKcCst|}|S)zMThis function is DEPRECATED. Use xmlIsDigit_ch or xmlIsDigitQ instead )r;Z xmlIsDigitrGrrrisDigits rLcCst|}|S)zSThis function is DEPRECATED. Use xmlIsExtender_ch or xmlIsExtenderQ instead )r;Z xmlIsExtenderrGrrr isExtender"s rMcCst|}|S)z;This function is DEPRECATED. Use xmlIsIdeographicQ instead )r;ZxmlIsIdeographicrGrrr isIdeographic(s rNcCst|}|S)zUThis function is DEPRECATED. Use xmlIsPubidChar_ch or xmlIsPubidCharQ instead )r;ZxmlIsPubidCharrGrrr isPubidChar-s rOcCst|}|S)z&Convenient way to turn bool into text )r;Z xmlBoolToText)Zboolvalr3rrr boolToText7s rPcCs |dur|t||dS)zcCst|}|S)z7Check whether the character is part of Lu UCS Category )r;Z xmlUCSIsCatLurrrr uCSIsCatLus r?cCst|}|S)z6Check whether the character is part of M UCS Category )r;Z xmlUCSIsCatMrrrr uCSIsCatM s r@cCst|}|S)z7Check whether the character is part of Mc UCS Category )r;Z xmlUCSIsCatMcrrrr uCSIsCatMc s rAcCst|}|S)z7Check whether the character is part of Me UCS Category )r;Z xmlUCSIsCatMerrrr uCSIsCatMe s rBcCst|}|S)z7Check whether the character is part of Mn UCS Category )r;Z xmlUCSIsCatMnrrrr uCSIsCatMn s rCcCst|}|S)z6Check whether the character is part of N UCS Category )r;Z xmlUCSIsCatNrrrr uCSIsCatN s rDcCst|}|S)z7Check whether the character is part of Nd UCS Category )r;Z xmlUCSIsCatNdrrrr uCSIsCatNd s rEcCst|}|S)z7Check whether the character is part of Nl UCS Category )r;Z xmlUCSIsCatNlrrrr uCSIsCatNl s rFcCst|}|S)z7Check whether the character is part of No UCS Category )r;Z xmlUCSIsCatNorrrr uCSIsCatNo% s rGcCst|}|S)z6Check whether the character is part of P UCS Category )r;Z xmlUCSIsCatPrrrr uCSIsCatP* s rHcCst|}|S)z7Check whether the character is part of Pc UCS Category )r;Z xmlUCSIsCatPcrrrr uCSIsCatPc/ s rIcCst|}|S)z7Check whether the character is part of Pd UCS Category )r;Z xmlUCSIsCatPdrrrr uCSIsCatPd4 s rJcCst|}|S)z7Check whether the character is part of Pe UCS Category )r;Z xmlUCSIsCatPerrrr uCSIsCatPe9 s rKcCst|}|S)z7Check whether the character is part of Pf UCS Category )r;Z xmlUCSIsCatPfrrrr uCSIsCatPf> s rLcCst|}|S)z7Check whether the character is part of Pi UCS Category )r;Z xmlUCSIsCatPirrrr uCSIsCatPiC s rMcCst|}|S)z7Check whether the character is part of Po UCS Category )r;Z xmlUCSIsCatPorrrr uCSIsCatPoH s rNcCst|}|S)z7Check whether the character is part of Ps UCS Category )r;Z xmlUCSIsCatPsrrrr uCSIsCatPsM s rOcCst|}|S)z6Check whether the character is part of S UCS Category )r;Z xmlUCSIsCatSrrrr uCSIsCatSR s rPcCst|}|S)z7Check whether the character is part of Sc UCS Category )r;Z xmlUCSIsCatScrrrr uCSIsCatScW s rQcCst|}|S)z7Check whether the character is part of Sk UCS Category )r;Z xmlUCSIsCatSkrrrr uCSIsCatSk\ s rRcCst|}|S)z7Check whether the character is part of Sm UCS Category )r;Z xmlUCSIsCatSmrrrr uCSIsCatSma s rScCst|}|S)z7Check whether the character is part of So UCS Category )r;Z xmlUCSIsCatSorrrr uCSIsCatSof s rTcCst|}|S)z6Check whether the character is part of Z UCS Category )r;Z xmlUCSIsCatZrrrr uCSIsCatZk s rUcCst|}|S)z7Check whether the character is part of Zl UCS Category )r;Z xmlUCSIsCatZlrrrr uCSIsCatZlp s rVcCst|}|S)z7Check whether the character is part of Zp UCS Category )r;Z xmlUCSIsCatZprrrr uCSIsCatZpu s rWcCst|}|S)z7Check whether the character is part of Zs UCS Category )r;Z xmlUCSIsCatZsrrrr uCSIsCatZsz s rXcCst|}|S)z:Check whether the character is part of Cherokee UCS Block )r;ZxmlUCSIsCherokeerrrr uCSIsCherokee s rYcCst|}|S)zRCheck whether the character is part of CombiningDiacriticalMarks UCS Block )r;Z!xmlUCSIsCombiningDiacriticalMarksrrrruCSIsCombiningDiacriticalMarks s rZcCst|}|S)z\Check whether the character is part of CombiningDiacriticalMarksforSymbols UCS Block )r;Z+xmlUCSIsCombiningDiacriticalMarksforSymbolsrrrr(uCSIsCombiningDiacriticalMarksforSymbols s r[cCst|}|S)zKCheck whether the character is part of CombiningHalfMarks UCS Block )r;ZxmlUCSIsCombiningHalfMarksrrrruCSIsCombiningHalfMarks s r\cCst|}|S)zQCheck whether the character is part of CombiningMarksforSymbols UCS Block )r;Z xmlUCSIsCombiningMarksforSymbolsrrrruCSIsCombiningMarksforSymbols s r]cCst|}|S)zHCheck whether the character is part of ControlPictures UCS Block )r;ZxmlUCSIsControlPicturesrrrruCSIsControlPictures s r^cCst|}|S)zHCheck whether the character is part of CurrencySymbols UCS Block )r;ZxmlUCSIsCurrencySymbolsrrrruCSIsCurrencySymbols s r_cCst|}|S)zICheck whether the character is part of CypriotSyllabary UCS Block )r;ZxmlUCSIsCypriotSyllabaryrrrruCSIsCypriotSyllabary s r`cCst|}|S)z:Check whether the character is part of Cyrillic UCS Block )r;ZxmlUCSIsCyrillicrrrr uCSIsCyrillic s racCst|}|S)zKCheck whether the character is part of CyrillicSupplement UCS Block )r;ZxmlUCSIsCyrillicSupplementrrrruCSIsCyrillicSupplement s rbcCst|}|S)z9Check whether the character is part of Deseret UCS Block )r;ZxmlUCSIsDeseretrrrr uCSIsDeseret s rccCst|}|S)zeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d`daZ2dbdcZ3dddeZ4dfdgZ5dhdiZ6djdkZ7dldmZ8dndoZ9dpdqZ:drdsZ;dtduZdzd{Z?d|d}Z@d~dZAddZBddZCddZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddÄZcddńZdddDŽZeddɄZfdd˄Zgdd̈́ZhdS)rNcCs,t|dkrtd||_tj||ddS)Nrz'xmlNode got a wrong wrapper object typer|)r TypeErrorr&rhrr'rrrr szxmlNode.__init__cCsd|jtt|fS)NzrPintrrrrr__repr__ szxmlNode.__repr__cCs&t|j}|durdSt|d}|SzGet the namespace of a node Nr|)r;Z xmlNodeGetNsr&rrr3 _xmlNode__tmprrrns s   z xmlNode.nscCs&t|j}|durdSt|d}|Sr)r;ZxmlNodeGetNsDefsr&rrrrrnsDefs s   zxmlNode.nsDefscCst||j|dS)zIDumps debug information for the element node, it is recursive N)r;ZxmlDebugDumpNoder&rrQdepthrrr debugDumpNode szxmlNode.debugDumpNodecCst||j|dS)zQDumps debug information for the list of element node, it is recursive N)r;ZxmlDebugDumpNodeListr&rrrrdebugDumpNodeList szxmlNode.debugDumpNodeListcCst||j|dS)zMDumps debug information for the element node, it is not recursive N)r;ZxmlDebugDumpOneNoder&rrrrdebugDumpOneNode szxmlNode.debugDumpOneNodecCst|j}|S)zCount the children of @node. )r;ZxmlLsCountNoder&rorrr lsCountNode s zxmlNode.lsCountNodecCst||jdS)z,Dump to @output the type and name of @node. N)r;Z xmlLsOneNoder&rrQrrr lsOneNode szxmlNode.lsOneNodecCst|jdS)zPrint node to the output FILE N)r;ZxmlShellPrintNoder&rrrrshellPrintNode szxmlNode.shellPrintNodecCs@|durd}n|j}t|j|}|dur2tdt|d}|S)a9Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed) If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed. NzxmlAddChild() failedr|)r&r;Z xmlAddChildrrrrcur__or3rrrraddChild s  zxmlNode.addChildcCs@|durd}n|j}t|j|}|dur2tdt|d}|S)zyAdd a list of node at the end of the child list of the parent merging adjacent TEXT nodes (@cur may be freed) NzxmlAddChildList() failedr|)r&r;ZxmlAddChildListrrrrrr addChildList s  zxmlNode.addChildListcCst|j|dS)zAppend the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported. N)r;ZxmlNodeAddContentr&rUrrr addContent! szxmlNode.addContentcCst|j||dS)zAppend the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported. N)r;ZxmlNodeAddContentLenr&rrVr2rrr addContentLen( szxmlNode.addContentLencCs@|durd}n|j}t|j|}|dur2tdt|d}|S)aAdd a new node @elem as the next sibling of @cur If the new node was already inserted in a document it is first unlinked from its existing context. As a result of text merging @elem may be freed. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed. NzxmlAddNextSibling() failedr|)r&r;ZxmlAddNextSiblingrrrr_elem__or3rrrraddNextSibling/ s  zxmlNode.addNextSiblingcCs@|durd}n|j}t|j|}|dur2tdt|d}|S)aAdd a new node @elem as the previous sibling of @cur merging adjacent TEXT nodes (@elem may be freed) If the new node was already inserted in a document it is first unlinked from its existing context. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed. NzxmlAddPrevSibling() failedr|)r&r;ZxmlAddPrevSiblingrrrrrraddPrevSibling= s  zxmlNode.addPrevSiblingcCs@|durd}n|j}t|j|}|dur2tdt|d}|S)zAdd a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context. NzxmlAddSibling() failedr|)r&r;Z xmlAddSiblingrrrrrr addSiblingL s  zxmlNode.addSiblingcCs,t|j|}|durtdt|d}|S)zDo a copy of the node. NzxmlCopyNode() failedr|)r;Z xmlCopyNoder&rr)rextendedr3rrrrcopyNodeX s zxmlNode.copyNodecCs*t|j}|durtdt|d}|S)zqDo a recursive copy of the node list. Use xmlDocCopyNodeList() if possible to ensure string interning. NzxmlCopyNodeList() failedr|)r;ZxmlCopyNodeListr&rrrrrr copyNodeList_ s  zxmlNode.copyNodeListcCs@|durd}n|j}t|j|}|dur2tdt|d}|SzDo a copy of the attribute. NzxmlCopyProp() failedr|r&r;Z xmlCopyProprr~rrrrcopyPropg s  zxmlNode.copyPropcCs@|durd}n|j}t|j|}|dur2tdt|d}|Sz Do a copy of an attribute list. NzxmlCopyPropList() failedr|r&r;ZxmlCopyPropListrr~rrrr copyPropListp s  zxmlNode.copyPropListcCsB|durd}n|j}t|j||}|dur4tdt|d}|Sz+Do a copy of the node to a given document. NzxmlDocCopyNode() failedr|r&r;ZxmlDocCopyNoderr)rrrdoc__or3rrrr docCopyNodey s  zxmlNode.docCopyNodecCs@|durd}n|j}t||j}|dur2tdt|d}|Sz&Do a recursive copy of the node list. NzxmlDocCopyNodeList() failedr|r&r;ZxmlDocCopyNodeListrrrrrr3rrrrdocCopyNodeList s  zxmlNode.docCopyNodeListcCs<|durd}n|j}t||j}|dur.dSt|d}|SzvSet the root element of the document (doc->children is a list containing possibly comments, PIs, etc ...). Nr|r&r;ZxmlDocSetRootElementrrrrrdocSetRootElement s   zxmlNode.docSetRootElementcCs&t|j}|durdSt|d}|S)aFinds the first child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back reference from entities content to entities references. Nr|)r;ZxmlFirstElementChildr&rrrrrfirstElementChild s   zxmlNode.firstElementChildcCst|jdS)zFree a node, this is a recursive behaviour, all the children are freed too. This doesn't unlink the child from the list, use xmlUnlinkNode() first. N)r;Z xmlFreeNoder&rrrrfreeNode szxmlNode.freeNodecCst|jdS)zlFree a node and all its siblings, this is a recursive behaviour, all the children are freed too. N)r;ZxmlFreeNodeListr&rrrr freeNodeList szxmlNode.freeNodeListcCs&|durd}n|j}t||j}|SaSearches for the BASE URL. The code should work on both XML and HTML document even if base mechanisms are completely different. It returns the base as defined in RFC 2396 sections 5.1.1. Base URI within Document Content and 5.1.2. Base URI from the Encapsulating Entity However it does not return the document base (5.1.3), use doc->URL in this case Nr&r;ZxmlNodeGetBaserrrr3rrrgetBase szxmlNode.getBasecCst|j}|S)aRead the value of a node, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. rrorrrr s zxmlNode.getContentcCst|j}|S)zSearches the language of a node, i.e. the values of the xml:lang attribute or the one carried by the nearest ancestor. )r;ZxmlNodeGetLangr&rorrrgetLang s zxmlNode.getLangcCst|j}|S)zSearches the space preserving behaviour of a node, i.e. the values of the xml:space attribute or the one carried by the nearest ancestor. )r;ZxmlNodeGetSpacePreserver&rorrrgetSpacePreserve s zxmlNode.getSpacePreservecCs*t|j||}|durdSt|d}|S)aSearch for an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. Note that a namespace of None indicates to use the default namespace. Nr|)r;Z xmlHasNsPropr&r~)rrP nameSpacer3rrrr hasNsProp s  zxmlNode.hasNsPropcCs(t|j|}|durdSt|d}|S)zSearch an attribute associated to a node This function also looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. Nr|)r;Z xmlHasPropr&r~)rrPr3rrrrhasProp s  zxmlNode.hasPropcCst|j}|S)zgChecks whether this node is an empty or whitespace only (and possibly ignorable) text-node. )r;ZxmlIsBlankNoder&rorrr isBlankNode s zxmlNode.isBlankNodecCst|j}|S)zIs this node a Text node ? )r;Z xmlNodeIsTextr&rorrrisText s zxmlNode.isTextcCs*t|j}|durtdt|d}|S)z!Search the last child of a node. NzxmlGetLastChild() failedr|)r;ZxmlGetLastChildr&rrrrrr lastChild s  zxmlNode.lastChildcCs&t|j}|durdSt|d}|S)aFinds the last child node of that element which is a Element node Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back reference from entities content to entities references. Nr|)r;ZxmlLastElementChildr&rrrrrlastElementChild s   zxmlNode.lastElementChildcCst|j}|S)zGet line number of @node. Try to override the limitation of lines being store in 16 bits ints if XML_PARSE_BIG_LINES parser option was used )r;Z xmlGetLineNor&rorrrlineNo s zxmlNode.lineNocCs(|durd}n|j}t||j|}|SzBuilds the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs, contrary to xmlNodeListGetString() this function doesn't do any character encoding handling. Nr&r;ZxmlNodeListGetRawStringrrinLinerr3rrrlistGetRawString szxmlNode.listGetRawStringcCs(|durd}n|j}t||j|}|SzlBuild the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs Nr&r;ZxmlNodeListGetStringrrrr listGetString szxmlNode.listGetStringcCsD|durd}n|j}t|j|||}|dur6tdt|d}|SaQCreation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (None). If @ns is None, the newly created element inherits the namespace of @parent. If @content is non None, a child list containing the TEXTs and ENTITY_REFs node will be created. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references. XML special chars must be escaped first by using xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should be used. NzxmlNewChild() failedr|r&r;Z xmlNewChildrrrrrPrVns__or3rrrrnewChild s  zxmlNode.newChildcCs.t|j||}|dur tdt|d}|S)aWCreation of a new Namespace. This function will refuse to create a namespace with a similar prefix than an existing one present on this node. Note that for a default namespace, @prefix should be None. We use href==None in the case of an element creation where the namespace was not defined. NzxmlNewNs() failedr|)r;ZxmlNewNsr&rr)rrrr3rrrrnewNs* s z xmlNode.newNscCsD|durd}n|j}t|j|||}|dur6tdt|d}|SPCreate a new property tagged with a namespace and carried by a node. NzxmlNewNsProp() failedr|r&r;Z xmlNewNsProprr~rrrPr2rr3rrrr newNsProp6 s  zxmlNode.newNsPropcCsD|durd}n|j}t|j|||}|dur6tdt|d}|SrNzxmlNewNsPropEatName() failedr|r&r;ZxmlNewNsPropEatNamerr~rrrrnewNsPropEatName@ s  zxmlNode.newNsPropEatNamecCs.t|j||}|dur tdt|d}|S)z)Create a new property carried by a node. NzxmlNewProp() failedr|)r;Z xmlNewPropr&rr~rrPr2r3rrrrnewPropJ s zxmlNode.newPropcCsD|durd}n|j}t|j|||}|dur6tdt|d}|SaCreation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (None). If @ns is None, the newly created element inherits the namespace of @parent. If @content is non None, a child TEXT node will be created containing the string @content. NOTE: Use xmlNewChild() if @content will contain entities that need to be preserved. Use this function, xmlNewTextChild(), if you need to ensure that reserved XML chars that might appear in @content, such as the ampersand, greater-than or less-than signs, are automatically replaced by their XML escaped entity representations. NzxmlNewTextChild() failedr|r&r;ZxmlNewTextChildrrrrrr newTextChildQ s  zxmlNode.newTextChildcCs&t|j}|durdSt|d}|S)a&Finds the first closest next sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back reference from entities content to entities references. Nr|)r;ZxmlNextElementSiblingr&rrrrrnextElementSiblingd s   zxmlNode.nextElementSiblingcCst|j|}|S)arSearch and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. This function is similar to xmlGetProp except it will accept only an attribute in no namespace. )r;ZxmlGetNoNsPropr&rrPr3rrrnoNsPropo szxmlNode.noNsPropcCst|j}|S)z0Build a structure based Path for the given node )r;ZxmlGetNodePathr&rorrrnodePathy s zxmlNode.nodePathcCst|j||}|S)aFSearch and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. )r;Z xmlGetNsPropr&)rrPrr3rrrnsProp~ szxmlNode.nsPropcCs&t|j}|durdSt|d}|S)a*Finds the first closest previous sibling of the node which is an element node. Note the handling of entities references is different than in the W3C DOM element traversal spec since we don't have back reference from entities content to entities references. Nr|)r;ZxmlPreviousElementSiblingr&rrrrrpreviousElementSibling s   zxmlNode.previousElementSiblingcCst|j|}|S)aSearch and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. NOTE: this function acts independently of namespaces associated to the attribute. Use xmlGetNsProp() or xmlGetNoNsProp() for namespace aware processing. )r;Z xmlGetPropr&r!rrrprop sz xmlNode.propcCs&|durd}n|j}t||j}|Sa!This function checks that all the namespaces declared within the given tree are properly declared. This is needed for example after Copy or Cut and then paste operations. The subtree may still hold pointers to namespace declarations outside the subtree or invalid/masked. As much as possible the function try to reuse the existing namespaces found in the new environment. If not possible the new namespaces are redeclared on @tree at the top of the given subtree. Nr&r;ZxmlReconciliateNsrrrrreconciliateNs s zxmlNode.reconciliateNscCs@|durd}n|j}t|j|}|dur2tdt|d}|S)zUnlink the old node from its current context, prune the new one at the same place. If @cur was already inserted in a document it is first unlinked from its existing context. NzxmlReplaceNode() failedr|)r&r;ZxmlReplaceNoderrrrrr replaceNode s  zxmlNode.replaceNodecCsB|durd}n|j}t||j|}|dur4tdt|d}|SaSearch a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return None otherwise. @nameSpace can be None, this is a search for the default namespace. We don't allow to cross entities boundaries. If you don't declare the namespace within those you will be in troubles !!! A warning is generated to cover this case. NzxmlSearchNs() failedr|r&r;Z xmlSearchNsrr)rrrrr3rrrrsearchNs s  zxmlNode.searchNscCsB|durd}n|j}t||j|}|dur4tdt|d}|SzSearch a Ns aliasing a given URI. Recurse on the parents until it finds the defined namespace or return None otherwise. NzxmlSearchNsByHref() failedr|r&r;ZxmlSearchNsByHrefrr)rrrrr3rrrrsearchNsByHref s  zxmlNode.searchNsByHrefcCst|j|dS)z\Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute. N)r;ZxmlNodeSetBaser&rrrrsetBase szxmlNode.setBasecCst|j|dSa Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). N)r;ZxmlNodeSetContentr&rUrrr setContent szxmlNode.setContentcCst|j||dSr2)r;ZxmlNodeSetContentLenr&rrrr setContentLen szxmlNode.setContentLencCst|j|dS)zRSet the language of a node, i.e. the values of the xml:lang attribute. N)r;ZxmlNodeSetLangr&)rrrrrsetLang szxmlNode.setLangcCs&|durd}n|j}t|j|dSz|durd}n|j}t|j|||}|dur6tdt|S)z-Create a new xmlXPathObjectPtr of type range NzxmlXPtrNewRange() failed)r&r;ZxmlXPtrNewRangerr)rZ startindexrZendindexrr3rrrxpointerNewRangeps zxmlNode.xpointerNewRangecCs:|durd}n|j}t|j|}|dur2tdt|S)z;Create a new xmlXPathObjectPtr of type range using 2 nodes NzxmlXPtrNewRangeNodes() failed)r&r;ZxmlXPtrNewRangeNodesrrrrrrxpointerNewRangeNodesxs zxmlNode.xpointerNewRangeNodes)N)irrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r rrrrrrr r"r#r$r%r&r)r*r-r0r1r3r4r5r9r:r=r@rArBrErFrHrIrLrMrRrUrXrZr]rarbrcrdrerfrgrkrnrqrtrwrzr}rrrrrrrrrrrrrrrr s                                          rc@sfeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d`daZ2dbdcZ3dddeZ4dfdgZ5dhdiZ6djdkZ7dldmZ8dndoZ9dpdqZ:drdsZ;dtduZdzd{Z?d|d}Z@d~dZAddZBddZCddZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddÄZcddńZdddDŽZeddɄZfdd˄Zgdd̈́ZhddτZiddфZjddӄZkddՄZlddׄZmdS)rNcCs,t|dkrtd||_tj||ddS)Nrz&xmlDoc got a wrong wrapper object typer|rrr&rrr'rrrrszxmlDoc.__init__cCsd|jtt|fS)NzrrrrrrszxmlDoc.__repr__cCst|j||}|S)zThe HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if the element or one of it's children would autoclose the given tag. )r;htmlAutoCloseTagr&)rrPr_r3rrrrszxmlDoc.htmlAutoCloseTagcCst|j|}|S)zThe HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if a tag is autoclosed by one of it's child )r;htmlIsAutoClosedr&)rr_r3rrrrszxmlDoc.htmlIsAutoClosedcCs*|durd}n|j}t||j||dSzDump an HTML document. Nr&r;htmlDocContentDumpFormatOutput)rbufrrbuf__orrrrsz%xmlDoc.htmlDocContentDumpFormatOutputcCs(|durd}n|j}t||j|dSz;Dump an HTML document. Formatting return/spaces are added. Nr&r;htmlDocContentDumpOutput)rrrrrrrrszxmlDoc.htmlDocContentDumpOutputcCst||j}|S)z'Dump an HTML document to an open FILE. )r; htmlDocDumpr&rrr3rrrrszxmlDoc.htmlDocDumpcCst|j}|S)z,Encoding definition lookup in the Meta tags )r;htmlGetMetaEncodingr&rorrrrs zxmlDoc.htmlGetMetaEncodingcCs(|durd}n|j}t||j|dS)znDump an HTML node, recursive behaviour,children are printed too, and formatting returns are added. N)r&r;htmlNodeDumpFile)rr(rrrrrrszxmlDoc.htmlNodeDumpFilecCs,|durd}n|j}t||j|||}|S)zDump an HTML node, recursive behaviour,children are printed too. TODO: if encoding == None try to save in the doc encoding N)r&r;htmlNodeDumpFileFormat)rr(rrrrr3rrrrszxmlDoc.htmlNodeDumpFileFormatcCs@|durd}n|j}|dur"d}n|j}t||j|||dSzLDump an HTML node, recursive behaviour,children are printed too. Nr&r;htmlNodeDumpFormatOutput)rrrrrrrrrrrs zxmlDoc.htmlNodeDumpFormatOutputcCs>|durd}n|j}|dur"d}n|j}t||j||dSzuDump an HTML node, recursive behaviour,children are printed too, and formatting returns/spaces are added. Nr&r;htmlNodeDumpOutput)rrrrrrrrrrs zxmlDoc.htmlNodeDumpOutputcCst||j}|S)zYDump an HTML document to a file. If @filename is "-" the stdout file is used. )r; htmlSaveFiler&rr r3rrrrszxmlDoc.htmlSaveFilecCst||j|}|S)zkDump an HTML document to a file using a given encoding and formatting returns/spaces are added. )r;htmlSaveFileEncr&rr rr3rrrrszxmlDoc.htmlSaveFileEnccCst||j||}|S)z8Dump an HTML document to a file using a given encoding. )r;htmlSaveFileFormatr&rr rrr3rrrrszxmlDoc.htmlSaveFileFormatcCst|j|}|S)zSets the current encoding in the Meta tags NOTE: this will not change the document content encoding, just the META flag associated. )r;htmlSetMetaEncodingr&)rrr3rrrrszxmlDoc.htmlSetMetaEncodingcCst||j}|S)z_Check the document for potential content problems, and output the errors to @output )r;ZxmlDebugCheckDocumentr&)rrQr3rrrdebugCheckDocumentszxmlDoc.debugCheckDocumentcCst||jdS)z9Dumps debug information for the document, it's recursive N)r;ZxmlDebugDumpDocumentr&rrrrdebugDumpDocumentszxmlDoc.debugDumpDocumentcCst||jdS)zJDumps debug information concerning the document, not recursive N)r;ZxmlDebugDumpDocumentHeadr&rrrrdebugDumpDocumentHeadszxmlDoc.debugDumpDocumentHeadcCst||jdS)zODumps debug information for all the entities in use by the document N)r;ZxmlDebugDumpEntitiesr&rrrrdebugDumpEntitiesszxmlDoc.debugDumpEntitiescCs4t|j|||||}|dur&tdt|d}|S)z)Register a new entity for this document. NzxmlAddDocEntity() failedr|)r;ZxmlAddDocEntityr&rrrrPr rrrVr3 _xmlDoc__tmprrr addDocEntity s zxmlDoc.addDocEntitycCs4t|j|||||}|dur&tdt|d}|S)z=Register a new entity for this document DTD external subset. NzxmlAddDtdEntity() failedr|)r;ZxmlAddDtdEntityr&rrrrrr addDtdEntitys zxmlDoc.addDtdEntitycCs,t|j|}|durtdt|d}|S)z:Do an entity lookup in the document entity hash table and NzxmlGetDocEntity() failedr|)r;ZxmlGetDocEntityr&rrrrPr3rrrr docEntitys zxmlDoc.docEntitycCs,t|j|}|durtdt|d}|S)z5Do an entity lookup in the DTD entity hash table and NzxmlGetDtdEntity() failedr|)r;ZxmlGetDtdEntityr&rrrrrr dtdEntity!s zxmlDoc.dtdEntitycCst|j|}|S)zTODO: remove xmlEncodeEntities, once we are not afraid of breaking binary compatibility People must migrate their code to xmlEncodeEntitiesReentrant ! This routine will issue a warning when encountered. )r;ZxmlEncodeEntitiesr&rrr3rrrencodeEntities(szxmlDoc.encodeEntitiescCst|j|}|S)aDo a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts. Contrary to xmlEncodeEntities, this routine is reentrant, and result must be deallocated. )r;ZxmlEncodeEntitiesReentrantr&rrrrencodeEntitiesReentrant0szxmlDoc.encodeEntitiesReentrantcCst|j|}|S)zDo a global encoding of a string, replacing the predefined entities this routine is reentrant, and result must be deallocated. )r;ZxmlEncodeSpecialCharsr&rrrrencodeSpecialChars8szxmlDoc.encodeSpecialCharscCs4t|j|||||}|dur&tdt|d}|S)aQCreate a new entity, this differs from xmlAddDocEntity() that if the document is None or has no internal subset defined, then an unlinked entity structure will be returned, it is then the responsibility of the caller to link it to the document later or free it when not needed anymore. NzxmlNewEntity() failedr|)r;Z xmlNewEntityr&rrrrrr newEntity?s zxmlDoc.newEntitycCs,t|j|}|durtdt|d}|S)z=Do an entity lookup in the internal and external subsets and NzxmlGetParameterEntity() failedr|)r;ZxmlGetParameterEntityr&rrrrrrparameterEntityKs zxmlDoc.parameterEntitycCs*t|j}|durtdt|d}|S)zCreate an XML RelaxNGs parser context for that document. Note: since the process of compiling a RelaxNG schemas modifies the document, the @doc parameter is duplicated internally. Nz#xmlRelaxNGNewDocParserCtxt() failedr|)r;ZxmlRelaxNGNewDocParserCtxtr&r!rrr3rrrrrelaxNGNewDocParserCtxtVs  zxmlDoc.relaxNGNewDocParserCtxtcCs&|durd}n|j}t||j}|Sz$Validate a document tree in memory. Nr&r;ZxmlRelaxNGValidateDocr`rrrrelaxNGValidateDoc`szxmlDoc.relaxNGValidateDoccCs<|durd}n|j}|dur"d}n|j}t||j|}|SzValidate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded. Nr&r;ZxmlRelaxNGValidateFullElementrrr_rrr3rrrrelaxNGValidateFullElementgs z!xmlDoc.relaxNGValidateFullElementcCs<|durd}n|j}|dur"d}n|j}t||j|}|Sz7Pop the element end from the RelaxNG validation stack. Nr&r;ZxmlRelaxNGValidatePopElementrrrrrelaxNGValidatePopElementrs z xmlDoc.relaxNGValidatePopElementcCs<|durd}n|j}|dur"d}n|j}t||j|}|Sz:Push a new element start on the RelaxNG validation stack. Nr&r;ZxmlRelaxNGValidatePushElementrrrrrelaxNGValidatePushElement{s z!xmlDoc.relaxNGValidatePushElementcCs,t|j|}|durtdt|d}|S)zDo a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities. NzxmlCopyDoc() failedr|)r;Z xmlCopyDocr&rr)r recursiver3rrrrcopyDocs zxmlDoc.copyDoccCsB|durd}n|j}t||j|}|dur4tdt|d}|Srr)rrrnode__or3rrrrrs  zxmlDoc.copyNodecCs@|durd}n|j}t|j|}|dur2tdt|d}|Srr)rrrr3rrrrrs  zxmlDoc.copyNodeListcCs0t|j|||}|dur"tdt|d}|S)z)Create the internal subset of a document NzxmlCreateIntSubset() failedr|)r;ZxmlCreateIntSubsetr&rrrrPrrr3rrrrcreateIntSubsets zxmlDoc.createIntSubsetcCst|j}|S)z5get the compression ratio for a document, ZLIB based )r;ZxmlGetDocCompressModer&rorrrdocCompressModes zxmlDoc.docCompressModecCst||j}|Sz&Dump an XML document to an open FILE. )r;Z xmlDocDumpr&rrrrdumpsz xmlDoc.dumpcCs(|durd}n|j}t||j|dS)zQDump an XML/HTML node, recursive behaviour, children are printed too. N)r&r;Z xmlElemDump)rrrrrrrelemDumpszxmlDoc.elemDumpcCst||j|}|Sr)r;ZxmlDocFormatDumpr&)rrrr3rrr formatDumpszxmlDoc.formatDumpcCst|jdS)zIFree up all the structures used by a document, tree included. N)r;rr&rrrrfreeDocszxmlDoc.freeDoccCs*t|j}|durtdt|d}|S)zvGet the root element of the document (doc->children is a list containing possibly comments, PIs, etc ...). NzxmlDocGetRootElement() failedr|)r;ZxmlDocGetRootElementr&rrrrrrgetRootElements  zxmlDoc.getRootElementcCs*t|j}|durtdt|d}|S)z&Get the internal subset of a document NzxmlGetIntSubset() failedr|)r;ZxmlGetIntSubsetr&rrrrrr intSubsets  zxmlDoc.intSubsetcCs.t|j||}|dur tdt|d}|S)z1Creation of a new node containing a CDATA block. NzxmlNewCDataBlock() failedr|)r;ZxmlNewCDataBlockr&rrrrVr2r3rrrr newCDataBlocks zxmlDoc.newCDataBlockcCs,t|j|}|durtdt|d}|S)z,Creation of a new character reference node. NzxmlNewCharRef() failedr|)r;Z xmlNewCharRefr&rrrrrr newCharRefs zxmlDoc.newCharRefcCs,t|j|}|durtdt|d}|S)zJCreation of a new node containing a comment within a document. NzxmlNewDocComment() failedr|)r;ZxmlNewDocCommentr&rrrrVr3rrrr newDocComments zxmlDoc.newDocCommentcCs*t|j}|durtdt|d}|S)z!Creation of a new Fragment node. NzxmlNewDocFragment() failedr|)r;ZxmlNewDocFragmentr&rrrrrrnewDocFragments  zxmlDoc.newDocFragmentcCsD|durd}n|j}t|j|||}|dur6tdt|d}|StCreation of a new node element within a document. @ns and @content are optional (None). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don't need entities support. NzxmlNewDocNode() failedr|r&r;Z xmlNewDocNoderrrrrPrVrr3rrrr newDocNodes  zxmlDoc.newDocNodecCsD|durd}n|j}t|j|||}|dur6tdt|d}|SrNzxmlNewDocNodeEatName() failedr|r&r;ZxmlNewDocNodeEatNamerrrrrrnewDocNodeEatNames  zxmlDoc.newDocNodeEatNamecCs.t|j||}|dur tdt|d}|S)z.Creation of a processing instruction element. NzxmlNewDocPI() failedr|)r;Z xmlNewDocPIr&rr)rrPrVr3rrrrnewDocPI s zxmlDoc.newDocPIcCs.t|j||}|dur tdt|d}|S)a6Create a new property carried by a document. NOTE: @value is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewProp() if you don't need entities support. NzxmlNewDocProp() failedr|)r;Z xmlNewDocPropr&rr~)rrPr2r3rrrr newDocProps zxmlDoc.newDocPropcCsD|durd}n|j}t|j|||}|dur6tdt|d}|SzcCreation of a new node element within a document. @ns and @content are optional (None). NzxmlNewDocRawNode() failedr|r&r;ZxmlNewDocRawNoderrrrrr newDocRawNodes  zxmlDoc.newDocRawNodecCs,t|j|}|durtdt|d}|S)z/Creation of a new text node within a document. NzxmlNewDocText() failedr|)r;Z xmlNewDocTextr&rrrrrr newDocText)s zxmlDoc.newDocTextcCs.t|j||}|dur tdt|d}|S)zzCreation of a new text node with an extra content length parameter. The text node pertain to a given document. NzxmlNewDocTextLen() failedr|)r;ZxmlNewDocTextLenr&rrrrrr newDocTextLen0s zxmlDoc.newDocTextLencCs0t|j|||}|dur"tdt|d}|S)zrCreation of a new DTD for the external subset. To create an internal subset, use xmlCreateIntSubset(). NzxmlNewDtd() failedr|)r;Z xmlNewDtdr&rrrrrrnewDtd8s z xmlDoc.newDtdcCs.t|j||}|dur tdt|d}|S)z\Creation of a Namespace, the old way using PI and without scoping DEPRECATED !!! NzxmlNewGlobalNs() failedr|)r;ZxmlNewGlobalNsr&rr)rrrr3rrrr newGlobalNs@s zxmlDoc.newGlobalNscCs,t|j|}|durtdt|d}|S)z"Creation of a new reference node. NzxmlNewReference() failedr|)r;ZxmlNewReferencer&rrrrrr newReferenceHs zxmlDoc.newReferencecCsB|durd}n|j}|dur"d}n|j}t||j||||dSzDump an XML node, recursive behaviour, children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called Nr&r;ZxmlNodeDumpOutput)rrrr<rrrrrrrnodeDumpOutputOs zxmlDoc.nodeDumpOutputcCs&|durd}n|j}t|j|}|Srr)rrrr3rrr nodeGetBaseZszxmlDoc.nodeGetBasecCs(|durd}n|j}t|j||}|Srrrrrlist__or3rrrnodeListGetRawStringfszxmlDoc.nodeListGetRawStringcCs(|durd}n|j}t|j||}|Sr r rrrrnodeListGetStringpszxmlDoc.nodeListGetStringcCs&|durd}n|j}t|j|}|Sr'r()rtreetree__or3rrrr)xs zxmlDoc.reconciliateNscCst||j}|S)zDump an XML document to a file. Will use compression if compiled in and enabled. If @filename is "-" the stdout file is used. )r;Z xmlSaveFiler&rrrrsaveFileszxmlDoc.saveFilecCst||j|}|S)z:Dump an XML document, converting it to the given encoding )r;ZxmlSaveFileEncr&rrrr saveFileEncszxmlDoc.saveFileEnccCs(|durd}n|j}t||j|}|SzDump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this call. Nr&r;Z xmlSaveFileTo)rrrrr3rrr saveFileToszxmlDoc.saveFileTocCst||j|}|S)adDump an XML document to a file. Will use compression if compiled in and enabled. If @filename is "-" the stdout file is used. If @format is set then the document will be indented on output. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called )r;ZxmlSaveFormatFiler&)rr rr3rrrsaveFormatFileszxmlDoc.saveFormatFilecCst||j||}|S)z*Dump an XML document to a file or an URL. )r;ZxmlSaveFormatFileEncr&rrrrsaveFormatFileEncszxmlDoc.saveFormatFileEnccCs*|durd}n|j}t||j||}|Sr r&r;ZxmlSaveFormatFileTo)rrrrrr3rrrsaveFormatFileToszxmlDoc.saveFormatFileTocCsB|durd}n|j}t|j||}|dur4tdt|d}|Sr+r,)rrrrr3rrrrr-s  zxmlDoc.searchNscCsB|durd}n|j}t|j||}|dur4tdt|d}|Sr.r/)rrrrr3rrrrr0s  zxmlDoc.searchNsByHrefcCst|j|dS)zxset the compression ratio for a document, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression) N)r;ZxmlSetDocCompressModer&)rrrrrsetDocCompressModeszxmlDoc.setDocCompressModecCs&|durd}n|j}t||jdSr6r7)rrrrrrr9szxmlDoc.setListDoccCs<|durd}n|j}t|j|}|dur.dSt|d}|Srr)rrootZroot__or3rrrrsetRootElements   zxmlDoc.setRootElementcCs&|durd}n|j}t||jdSrCrD)rrrrrrrEszxmlDoc.setTreeDoccCs,t|j|}|durtdt|d}|S)Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs. NzxmlStringGetNodeList() failedr|)r;ZxmlStringGetNodeListr&rr)rr2r3rrrrstringGetNodeLists zxmlDoc.stringGetNodeListcCs.t|j||}|dur tdt|d}|S)rNz xmlStringLenGetNodeList() failedr|)r;ZxmlStringLenGetNodeListr&rr)rr2r2r3rrrrstringLenGetNodeLists zxmlDoc.stringLenGetNodeListcCs,t|j|}|durtdt|d}|S)z,Search the attribute declaring the given ID NzxmlGetID() failedr|)r;ZxmlGetIDr&rr~)rrr3rrrrrs z xmlDoc.IDcCs<|durd}n|j}|dur"d}n|j}t|j||}|SrNrOrr_rrrQr3rrrrRs z xmlDoc.isIDcCst|j|}|S)zSearch in the DtDs whether an element accept Mixed content (or ANY) basically if it is supposed to accept text childs )r;ZxmlIsMixedElementr&r!rrrisMixedElementszxmlDoc.isMixedElementcCs<|durd}n|j}|dur"d}n|j}t|j||}|SrSrTrrrrrUs z xmlDoc.isRefcCs&|durd}n|j}t|j|}|SzORemove the given attribute from the ID table maintained internally. Nr&r;Z xmlRemoveIDrrrQr3rrrremoveID"szxmlDoc.removeIDcCs&|durd}n|j}t|j|}|SzPRemove the given attribute from the Ref table maintained internally. Nr&r;Z xmlRemoveRefrrrr removeRef*szxmlDoc.removeRefcCs@|durd}n|j}|dur"d}n|j}t||j|||}|SaDoes the validation related extra step of the normalization of attribute values: If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character. Also check VC: Standalone Document Declaration in P32, and update ctxt->valid accordingly Nr&r;Z#xmlValidCtxtNormalizeAttributeValue)rrr_rPr2rrr3rrr validCtxtNormalizeAttributeValue2s z'xmlDoc.validCtxtNormalizeAttributeValuecCs*|durd}n|j}t|j|||}|SrVrW)rr_rPr2rr3rrrrXBsz#xmlDoc.validNormalizeAttributeValuecCs&|durd}n|j}t||j}|SzTry to validate the document instance basically it does the all the checks described by the XML Rec i.e. validates the internal and external subset (if present) and validate the document tree. Nr&r;ZxmlValidateDocumentr`rrrvalidateDocumentNszxmlDoc.validateDocumentcCs&|durd}n|j}t||j}|SaDoes the final step for the document validation once all the incremental validation steps have been completed basically it does the following checks described by the XML Rec Check all the IDREF/IDREFS attributes definition for validity Nr&r;ZxmlValidateDocumentFinalr`rrrvalidateDocumentFinalXszxmlDoc.validateDocumentFinalcCs<|durd}n|j}|dur"d}n|j}t||j|}|SaTry to validate the document against the dtd instance Basically it does check all the definitions in the DtD. Note the the internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present. Nr&r;ZxmlValidateDtd)rrrrdtd__or3rrr validateDtdcs zxmlDoc.validateDtdcCs&|durd}n|j}t||j}|SaDoes the final step for the dtds validation once all the subsets have been parsed basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations. Nr&r;ZxmlValidateDtdFinalr`rrrvalidateDtdFinalpszxmlDoc.validateDtdFinalcCs<|durd}n|j}|dur"d}n|j}t||j|}|Sz-Try to validate the subtree under an element Nr&r;ZxmlValidateElementrrrrvalidateElement}s zxmlDoc.validateElementcCs(|durd}n|j}t||j|}|SzbValidate that the given name match a notation declaration. - [ VC: Notation Declared ] Nr&r;ZxmlValidateNotationUse)rrrbrr3rrrvalidateNotationUseszxmlDoc.validateNotationUsec CsT|durd}n|j}|dur"d}n|j}|dur6d}n|j}t||j|||}|SaTry to validate a single attribute for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately Nr&r;ZxmlValidateOneAttribute) rrr_rr2rrrQr3rrrvalidateOneAttributeszxmlDoc.validateOneAttributecCs<|durd}n|j}|dur"d}n|j}t||j|}|Sa]Try to validate a single element and it's attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each attribute present. The ID/IDREF checkings are done separately Nr&r;ZxmlValidateOneElementrrrrvalidateOneElements zxmlDoc.validateOneElementc CsV|durd}n|j}|dur"d}n|j}|dur6d}n|j}t||j||||} | SaTry to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF uniqueness and matching are done separately Nr&r;ZxmlValidateOneNamespace) rrr_rrr2rrrr3rrrvalidateOneNamespaceszxmlDoc.validateOneNamespacecCs>|durd}n|j}|dur"d}n|j}t||j||}|Sz/Pop the element end from the validation stack. Nr&r;ZxmlValidatePopElementrrr_qnamerrr3rrrvalidatePopElements zxmlDoc.validatePopElementcCs>|durd}n|j}|dur"d}n|j}t||j||}|Sz2Push a new element start on the validation stack. Nr&r;ZxmlValidatePushElementrBrrrvalidatePushElements zxmlDoc.validatePushElementcCs&|durd}n|j}t||j}|SzTry to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn't try to recurse or apply other check to the element Nr&r;ZxmlValidateRootr`rrr validateRootszxmlDoc.validateRootcCst|j}|Sz=Implement the XInclude substitution on the XML document @doc )r;ZxmlXIncludeProcessr&rorrrxincludeProcesss zxmlDoc.xincludeProcesscCst|j|}|SrK)r;ZxmlXIncludeProcessFlagsr&r[rrrxincludeProcessFlagsszxmlDoc.xincludeProcessFlagscCs&|durd}n|j}t||j}|SzuSetup an xmltextReader to parse a preparsed XML document. This reuses the existing @reader xmlTextReader. Nr&r;ZxmlReaderNewWalkerrreader reader__or3rrr NewWalkerszxmlDoc.NewWalkercCs*t|j}|durtdt|d}|S)z2Create an xmltextReader for a preparsed document. NzxmlReaderWalker() failedr|)r;ZxmlReaderWalkerr&rrrrrr readerWalkers  zxmlDoc.readerWalkercCs*t|j}|durtdt|d}|S)zCreate an XML Schemas parse context for that document. NB. The document may be modified during the parsing process. Nz"xmlSchemaNewDocParserCtxt() failedr|)r;ZxmlSchemaNewDocParserCtxtr&r!rrrrrschemaNewDocParserCtxts  zxmlDoc.schemaNewDocParserCtxtcCs&|durd}n|j}t||j}|Srr&r;ZxmlSchemaValidateDocr`rrrschemaValidateDocszxmlDoc.schemaValidateDoccCs*t|j}|durtdt|d}|S)zCreate a new xmlXPathContext NzxmlXPathNewContext() failedr|)r;ZxmlXPathNewContextr&r#rrrrrrs  zxmlDoc.xpathNewContextcCst|j}|S)amCall this routine to speed up XPath computation on static documents. This stamps all the element nodes with the document order Like for line information, the order is kept in the element->content field, the value stored is actually - the node number (starting at -1) to be able to differentiate from line numbers. )r;ZxmlXPathOrderDocElemsr&rorrrxpathOrderDocElemss zxmlDoc.xpathOrderDocElemscCsV|durd}n|j}|dur"d}n|j}t|j||}|durHtdt|d}|Srr)rhererZhere__orr3rrrrr's zxmlDoc.xpointerNewContext)N)nrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)r r r rrrr-r0rr9rrErrrrRrrUrr r#rXr&r)r-r0r3r6r9r<r?rDrGrJrLrMrSrTrUrWrrXrrrrrrs                                        rc@seZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d`daZ2dbdcZ3dddeZ4dfdgZ5dhdiZ6djdkZ7dldmZ8dndoZ9dpdqZ:drdsZ;dtduZdzd{Z?d|d}Z@d~dZAddZBddZCddZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUdS)rNcCs||_tj||ddSr{)r&rrr'rrrr3szparserCtxt.__init__cCs |jdkrt|jd|_dSrrrrrrr>7s  zparserCtxt.__del__cCs*t|j}|durtdt|d}|S)z-Get the document tree from a parser context. NzxmlParserGetDoc() failedr|)r;ZxmlParserGetDocr&r!rrr3_parserCtxt__tmprrrr=s  zparserCtxt.doccCst|j}|S)z4Get the validity information from a parser context. )r;ZxmlParserGetIsValidr&rorrrisValidDs zparserCtxt.isValidcCst|j|dS)zmyDoc is not freed. N)r;htmlFreeParserCtxtr&rrrrrrszparserCtxt.htmlFreeParserCtxtcCst|j}|S)zcparse Reference declarations [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' )r;htmlParseCharRefr&rorrrrss zparserCtxt.htmlParseCharRefcCst|j|||}|SzParse a Chunk of memory )r;htmlParseChunkr&rrrZ terminater3rrrruszparserCtxt.htmlParseChunkcCst|j}|S)zZparse an HTML document (and build a tree if using the standard SAX interface). )r;htmlParseDocumentr&rorrrrws zparserCtxt.htmlParseDocumentcCst|jdS)zparse an HTML element, this is highly recursive this is kept for compatibility with previous code versions [39] element ::= EmptyElemTag | STag content ETag [41] Attribute ::= Name Eq AttValue N)r;htmlParseElementr&rrrrrxszparserCtxt.htmlParseElementcCst|j}|S)aThis function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input. )r;ZxmlByteConsumedr&rorrr byteConsumeds zparserCtxt.byteConsumedcCst|jdS)zMClear (release owned resources) and reinitialize a parser context N)r;ZxmlClearParserCtxtr&rrrrclearParserCtxtszparserCtxt.clearParserCtxtcCs2t|j||||}|dur$tdt|d}|S)rcNzxmlCtxtReadDoc() failedr|)r;ZxmlCtxtReadDocr&rrrerrr ctxtReadDocs zparserCtxt.ctxtReadDoccCs2t|j||||}|dur$tdt|d}|S)zparse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context NOTE that the file descriptor will not be closed when the reader is closed or reset. NzxmlCtxtReadFd() failedr|)r;Z xmlCtxtReadFdr&rrrgrrr ctxtReadFds zparserCtxt.ctxtReadFdcCs0t|j|||}|dur"tdt|d}|S)rhNzxmlCtxtReadFile() failedr|)r;ZxmlCtxtReadFiler&rrrjrrr ctxtReadFiles zparserCtxt.ctxtReadFilecCs4t|j|||||}|dur&tdt|d}|S)rcNzxmlCtxtReadMemory() failedr|)r;ZxmlCtxtReadMemoryr&rrrlrrrctxtReadMemorys zparserCtxt.ctxtReadMemorycCst|jdSrm)r;Z xmlCtxtResetr&rrrr ctxtResetszparserCtxt.ctxtResetcCst|j||||}|S)zReset a push parser context )r;ZxmlCtxtResetPushr&)rrrr rr3rrr ctxtResetPushszparserCtxt.ctxtResetPushcCst|j|}|Sro)r;ZxmlCtxtUseOptionsr&rqrrrctxtUseOptionsszparserCtxt.ctxtUseOptionscCst|j}|S)zInitialize a parser context )r;ZxmlInitParserCtxtr&rorrrinitParserCtxts zparserCtxt.initParserCtxtcCst|j|||}|Srt)r;Z xmlParseChunkr&rvrrr parseChunkszparserCtxt.parseChunkcCst|j}|S)zparse an XML document (and build a tree if using the standard SAX interface). [1] document ::= prolog element Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? )r;ZxmlParseDocumentr&rorrr parseDocuments zparserCtxt.parseDocumentcCst|j}|S)zparse a general parsed entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content )r;ZxmlParseExtParsedEntr&rorrrparseExtParsedEnts zparserCtxt.parseExtParsedEntcCst|j||dS)zSetup the parser context to parse a new buffer; Clears any prior contents from the parser context. The buffer parameter must not be None, but the filename parameter can be N)r;ZxmlSetupParserForBufferr&)rrr rrrsetupParserForBufferszparserCtxt.setupParserForBuffercCst|jdS)z!Blocks further parser processing N)r;Z xmlStopParserr&rrrr stopParserszparserCtxt.stopParsercCst|j|||||}|S)zThis function is deprecated, we now always process entities content through xmlStringDecodeEntities TODO: remove it in next major release. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';' )r;ZxmlDecodeEntitiesr&)rr2whatrend2end3r3rrrdecodeEntitiesszparserCtxt.decodeEntitiescCs&|durd}n|j}t|j|dSzDefault handling of defined entities, when should we define a new input stream ? When do we just handle that as a set of chars ? OBSOLETE: to be removed at some point. Nr&r;ZxmlHandleEntity)rZentityZ entity__orrr handleEntityszparserCtxt.handleEntitycCst|j}|S)aCparse an XML namespace name. TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 3] NCName ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender )r;ZxmlNamespaceParseNCNamer&rorrrnamespaceParseNCName&s zparserCtxt.namespaceParseNCNamecCst|j}|S)a!parse a namespace prefix declaration TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input. [NS 1] NSDef ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::= 'xmlns' (':' NCName)? )r;ZxmlNamespaceParseNSDefr&rorrrnamespaceParseNSDef/s zparserCtxt.namespaceParseNSDefcCst|jdS)z"Skip to the next char input char. N)r;Z xmlNextCharr&rrrrnextChar8szparserCtxt.nextCharcCst|j}|S)a parse a value for an attribute Note: the parser won't do substitution of entities here, this will be handled later in xmlStringGetNodeList [10] AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'" 3.3.3 Attribute-Value Normalization: Before the value of an attribute is passed to the application or checked for validity, the XML processor must normalize it as follows: - a character reference is processed by appending the referenced character to the attribute value - an entity reference is processed by recursively processing the replacement text of the entity - a whitespace character (#x20, #xD, #xA, #x9) is processed by appending #x20 to the normalized value, except that only a single #x20 is appended for a "#xD#xA" sequence that is part of an external parsed entity or the literal entity value of an internal parsed entity - other characters are processed by appending them to the normalized value If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by a single space (#x20) character. All attributes for which no declaration has been read should be treated by a non-validating parser as if declared CDATA. )r;ZxmlParseAttValuer&rorrr parseAttValue<s zparserCtxt.parseAttValuecCst|jdS)z: parse the Attribute list def for an element [52] AttlistDecl ::= '' [53] AttDef ::= S Name S AttType S DefaultDecl N)r;ZxmlParseAttributeListDeclr&rrrrparseAttributeListDeclXsz!parserCtxt.parseAttributeListDeclcCst|jdS)zParse escaped pure raw content. [18] CDSect ::= CDStart CData CDEnd [19] CDStart ::= '' Char*)) [21] CDEnd ::= ']]>' N)r;ZxmlParseCDSectr&rrrr parseCDSect^szparserCtxt.parseCDSectcCst|j|dS)aparse a CharData section. if we are within a CDATA section ']]>' marks an end of section. The right angle bracket (>) may be represented using the string ">", and must, for compatibility, be escaped using ">" or a character reference when it appears in the string "]]>" in content, when that string is not marking the end of a CDATA section. [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) N)r;ZxmlParseCharDatar&)rZcdatarrr parseCharDatadszparserCtxt.parseCharDatacCst|j}|S)zparse Reference declarations [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' [ WFC: Legal Character ] Characters referred to using character references must match the production for Char. )r;ZxmlParseCharRefr&rorrr parseCharRefns zparserCtxt.parseCharRefcCst|jdS)zSkip an XML (SGML) comment The spec says that "For compatibility, the string "--" (double-hyphen) must not occur within comments. " [15] Comment ::= '' N)r;ZxmlParseCommentr&rrrr parseCommentvszparserCtxt.parseCommentcCst|jdS)zParse a content sequence. Stops at EOF or '' [ VC: Root Element Type ] The Name in the document type declaration must match the element type of the root element. N)r;ZxmlParseDocTypeDeclr&rrrrparseDocTypeDeclszparserCtxt.parseDocTypeDeclcCst|jdS)zparse an XML element [39] element ::= EmptyElemTag | STag content ETag [ WFC: Element Type Match ] The Name in an element's end-tag must match the element type in the start-tag. N)r;ZxmlParseElementr&rrrr parseElementszparserCtxt.parseElementcCst|j}|S)zparse an Element declaration. [45] elementdecl ::= '' [ VC: Unique Element Type Declaration ] No element type may be declared more than once )r;ZxmlParseElementDeclr&rorrrparseElementDecls zparserCtxt.parseElementDeclcCst|j}|S)zYparse the XML encoding name [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* )r;ZxmlParseEncNamer&rorrr parseEncNames zparserCtxt.parseEncNamecCst|j}|S)zparse the XML encoding declaration [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'") this setups the conversion filters. )r;ZxmlParseEncodingDeclr&rorrrparseEncodingDecls zparserCtxt.parseEncodingDeclcCst|jdS)zrparse an end of tag [42] ETag ::= '' With namespace [NS 9] ETag ::= '' N)r;ZxmlParseEndTagr&rrrr parseEndTagszparserCtxt.parseEndTagcCst|jdS)aparse ' [72] PEDecl ::= '' [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::= S 'NDATA' S Name [ VC: Notation Declared ] The Name must match the declared name of a notation. N)r;ZxmlParseEntityDeclr&rrrrparseEntityDeclszparserCtxt.parseEntityDeclcCs*t|j}|durtdt|d}|S)aparse ENTITY references declarations [68] EntityRef ::= '&' Name ';' [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. The declaration of a parameter entity must precede any reference to it. Similarly, the declaration of a general entity must precede any reference to it which appears in a default value in an attribute-list declaration. Note that if entities are declared in the external subset or in external parameter entities, a non-validating processor is not obligated to read and process their declarations; for such documents, the rule that an entity must be declared is a well-formedness constraint only if standalone='yes'. [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity NzxmlParseEntityRef() failedr|)r;ZxmlParseEntityRefr&r!rrZrrrparseEntityRefs  zparserCtxt.parseEntityRefcCst|j||dS)zparse Markup declarations from an external subset [30] extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) * N)r;ZxmlParseExternalSubsetr&)rrrrrrparseExternalSubsetszparserCtxt.parseExternalSubsetcCst|jdS)asparse Markup declarations [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [ VC: Proper Declaration/PE Nesting ] Parameter-entity replacement text must be properly nested with markup declarations. That is to say, if either the first character or the last character of a markup declaration (markupdecl above) is contained in the replacement text for a parameter-entity reference, both must be contained in the same replacement text. [ WFC: PEs in Internal Subset ] In the internal DTD subset, parameter-entity references can occur only where markup declarations can occur, not within markup declarations. (This does not apply to references that occur in external parameter entities or to the external subset.) N)r;ZxmlParseMarkupDeclr&rrrrparseMarkupDeclszparserCtxt.parseMarkupDeclcCst|jdS)zOparse an XML Misc* optional field. [27] Misc ::= Comment | PI | S N)r;Z xmlParseMiscr&rrrr parseMiscszparserCtxt.parseMisccCst|j}|S)zparse an XML name. [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (#x20 Name)* )r;Z xmlParseNamer&rorrr parseNames zparserCtxt.parseNamecCst|jdS)avxmlParseNamespace: parse specific PI '' Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral 'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S SystemLiteral See the NOTE on xmlParseExternalID(). N)r;ZxmlParseNotationDeclr&rrrrparseNotationDeclszparserCtxt.parseNotationDeclcCst|jdS)aparse PEReference declarations The entity content is handled directly by pushing it's content as a new input stream. [69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", ... ... The declaration of a parameter entity must precede any reference to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with "standalone='no'", ... ... The declaration of a parameter entity must precede any reference to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled. N)r;ZxmlParsePEReferencer&rrrrparsePEReference szparserCtxt.parsePEReferencecCst|jdS)zparse an XML Processing Instruction. [16] PI ::= '' Char*)))? '?>' The processing is transferred to SAX once parsed. N)r;Z xmlParsePIr&rrrrparsePIszparserCtxt.parsePIcCst|j}|S)zbparse the name of a PI [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l')) )r;ZxmlParsePITargetr&rorrr parsePITarget#s zparserCtxt.parsePITargetcCst|j}|S)znparse an XML public literal [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'" )r;ZxmlParsePubidLiteralr&rorrrparsePubidLiteral)s zparserCtxt.parsePubidLiteralcCst|j}|S)zParse and return a string between quotes or doublequotes TODO: Deprecated, to be removed at next drop of binary compatibility )r;ZxmlParseQuotedStringr&rorrrparseQuotedString/s zparserCtxt.parseQuotedStringcCst|jdS)aLparse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode. [67] Reference ::= EntityRef | CharRef N)r;ZxmlParseReferencer&rrrrparseReference6szparserCtxt.parseReferencecCst|j}|S)aparse the XML standalone declaration [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value "no" if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the attribute appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types. )r;ZxmlParseSDDeclr&rorrr parseSDDecl>s zparserCtxt.parseSDDeclcCst|j}|S)aparse a start of tag either for rule element or EmptyElement. In both case we don't parse the tag closing chars. [40] STag ::= '<' Name (S Attribute)* S? '>' [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= '<' QName (S Attribute)* S? '>' [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>' )r;ZxmlParseStartTagr&rorrr parseStartTagRs zparserCtxt.parseStartTagcCst|j}|S)zZparse an XML Literal [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'") )r;ZxmlParseSystemLiteralr&rorrrparseSystemLiteral`s zparserCtxt.parseSystemLiteralcCst|jdS)z~parse an XML declaration header for external entities [77] TextDecl ::= '' N)r;ZxmlParseTextDeclr&rrrr parseTextDeclfszparserCtxt.parseTextDeclcCst|j}|S)zparse the XML version. [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ") [25] Eq ::= S? '=' S? )r;ZxmlParseVersionInfor&rorrrparseVersionInfoks zparserCtxt.parseVersionInfocCst|j}|S)zwparse the XML version value. [26] VersionNum ::= '1.' [0-9]+ In practice allow [0-9].[0-9]+ at that level )r;ZxmlParseVersionNumr&rorrrparseVersionNumqs zparserCtxt.parseVersionNumcCst|jdS)zoparse an XML declaration header [23] XMLDecl ::= '' N)r;ZxmlParseXMLDeclr&rrrr parseXMLDeclwszparserCtxt.parseXMLDeclcCst|jdS)aw[69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly. [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with "standalone='yes'", ... ... The declaration of a parameter entity must precede any reference to it... [ VC: Entity Declared ] In a document with an external subset or external parameter entities with "standalone='no'", ... ... The declaration of a parameter entity must precede any reference to it... [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled. A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc i.e. - Included in literal in entity values - Included as Parameter Entity reference within DTDs N)r;ZxmlParserHandlePEReferencer&rrrrparserHandlePEReference|sz"parserCtxt.parserHandlePEReferencecCst|jdS)a TODO: Remove, now deprecated ... the test is done directly in the content parsing routines. [67] Reference ::= EntityRef | CharRef [68] EntityRef ::= '&' Name ';' [ WFC: Entity Declared ] the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot. [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc N)r;ZxmlParserHandleReferencer&rrrrparserHandleReferences z parserCtxt.parserHandleReferencecCst|j}|S)zqxmlPopInput: the current input pointed by ctxt->input came to an end pop it and return the next char. )r;Z xmlPopInputr&rorrrpopInputs zparserCtxt.popInputcCst|j}|S)aTrickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references. TODO: seems deprecated now, only used in the default part of xmlParserHandleReference [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (S Name)* )r;Z xmlScanNamer&rorrrscanNames zparserCtxt.scanNamecCst|j}|S)zskip all blanks character found at that point in the input streams. It pops up finished entities in the process if allowable at that point. )r;ZxmlSkipBlankCharsr&rorrrskipBlankCharss zparserCtxt.skipBlankCharscCst|j|||||}|SzTakes a entity string content and process to do the adequate substitutions. [67] Reference ::= EntityRef | CharRef [69] PEReference ::= '%' Name ';' )r;ZxmlStringDecodeEntitiesr&)rr7rrrrr3rrrstringDecodeEntitiesszparserCtxt.stringDecodeEntitiesc Cst|j||||||}|Sr)r;ZxmlStringLenDecodeEntitiesr&)rr7r2rrrrr3rrrstringLenDecodeEntitiessz"parserCtxt.stringLenDecodeEntities)N)Vrrrrr>rr\r]r^r_r`rarbrdrfrirkrnrprrrsrurwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr2s           rc@sfeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ dS)r~NcCs,t|dkrtd||_tj||ddS)Nrz'xmlAttr got a wrong wrapper object typer|rr'rrrrszxmlAttr.__init__cCsd|jtt|fS)NzrrrrrrszxmlAttr.__repr__cCst||j|dS)z*Dumps debug information for the attribute N)r;ZxmlDebugDumpAttrr&rrrr debugDumpAttrszxmlAttr.debugDumpAttrcCst||j|dS)z/Dumps debug information for the attribute list N)r;ZxmlDebugDumpAttrListr&rrrrdebugDumpAttrListszxmlAttr.debugDumpAttrListcCs@|durd}n|j}t||j}|dur2tdt|d}|SrrrrSZ target__or3Z _xmlAttr__tmprrrrs  zxmlAttr.copyPropcCs@|durd}n|j}t||j}|dur2tdt|d}|Srrrrrrrs  zxmlAttr.copyPropListcCst|jdS)z1Free one attribute, all the content is freed too N)r;Z xmlFreePropr&rrrrfreePropszxmlAttr.freePropcCst|jdS)zQFree a property and all its siblings, all the children are freed too. N)r;ZxmlFreePropListr&rrrr freePropListszxmlAttr.freePropListcCst|j}|S)zUnlink and free one attribute, all the content is freed too Note this doesn't work for namespace definition attributes )r;Z xmlRemovePropr&rorrr removeProps zxmlAttr.removePropcCs&|durd}n|j}t||j}|SrrrrrrrszxmlAttr.removeIDcCs&|durd}n|j}t||j}|Srrrrrrr  szxmlAttr.removeRef)N)rrrrrrrrrrrrrr rrrrr~s    r~c@seZdZdddZddZdS)rNcCs,t|dkrtd||_tj||ddS)Nrz,xmlAttribute got a wrong wrapper object typer|rr'rrrrszxmlAttribute.__init__cCsd|jtt|fS)Nz"rrrrrrszxmlAttribute.__repr__)Nrrrrrrrrrrs rc@sfeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ dS)r?NcCs|dkr||_dSd|_dSrrir'rrrrszcatalog.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlFreeCatalogrrrrr>"s  zcatalog.__del__cCst|j|||}|S)zYAdd an entry in the catalog, it may overwrite existing but different entries. )r;ZxmlACatalogAddr&)rr r"r#r3rrradd+sz catalog.addcCst|j}|S)zCheck is a catalog is empty )r;ZxmlCatalogIsEmptyr&rorrrcatalogIsEmpty1s zcatalog.catalogIsEmptycCst|j}|Sr&)r;ZxmlConvertSGMLCatalogr&rorrrconvertSGMLCatalog6s zcatalog.convertSGMLCatalogcCst|j|dS)z*Dump the given catalog to the given file. N)r;ZxmlACatalogDumpr&)rr(rrrr;sz catalog.dumpcCst|j|}|Sr0)r;ZxmlACatalogRemover&)rr2r3rrrremove?szcatalog.removecCst|j||}|Sr4)r;ZxmlACatalogResolver&)rr+r.r3rrrresolveDszcatalog.resolvecCst|j|}|S)z_Try to lookup the catalog local reference associated to a public ID in that catalog )r;ZxmlACatalogResolvePublicr&)rr+r3rrr resolvePublicIszcatalog.resolvePubliccCst|j|}|Sr7)r;ZxmlACatalogResolveSystemr&)rr.r3rrr resolveSystemOszcatalog.resolveSystemcCst|j|}|Sr9)r;ZxmlACatalogResolveURIr&)rrr3rrr resolveURITszcatalog.resolveURI)N)rrrrr>rrrrrrrrrrrrrr?s  r?c@sVeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ dS)rNcCs,t|dkrtd||_tj||ddS)Nrz&xmlDtd got a wrong wrapper object typer|rr'rrrrZszxmlDtd.__init__cCsd|jtt|fS)Nzrrrrrr_szxmlDtd.__repr__cCst||jdS)z$Dumps debug information for the DTD N)r;ZxmlDebugDumpDTDr&rrrr debugDumpDTDfszxmlDtd.debugDumpDTDcCs*t|j}|durtdt|d}|S)zDo a copy of the dtd. NzxmlCopyDtd() failedr|)r;Z xmlCopyDtdr&rr)rr3 _xmlDtd__tmprrrcopyDtdns  zxmlDtd.copyDtdcCst|jdS)zFree a DTD structure. N)r;Z xmlFreeDtdr&rrrrfreeDtduszxmlDtd.freeDtdcCs.t|j||}|dur tdt|d}|S)zQSearch the DTD for the description of this attribute on this element. NzxmlGetDtdAttrDesc() failedr|)r;ZxmlGetDtdAttrDescr&rr)rr_rPr3rrrr dtdAttrDesc}s zxmlDtd.dtdAttrDesccCs,t|j|}|durtdt|d}|S)3Search the DTD for the description of this element NzxmlGetDtdElementDesc() failedr|)r;ZxmlGetDtdElementDescr&rr)rrPr3rrrrdtdElementDescs zxmlDtd.dtdElementDesccCs0t|j|||}|dur"tdt|d}|S)z[Search the DTD for the description of this qualified attribute on this element. NzxmlGetDtdQAttrDesc() failedr|)r;ZxmlGetDtdQAttrDescr&rr)rr_rPrr3rrrr dtdQAttrDescs zxmlDtd.dtdQAttrDesccCs.t|j||}|dur tdt|d}|S)rNzxmlGetDtdQElementDesc() failedr|)r;ZxmlGetDtdQElementDescr&rr)rrPrr3rrrrdtdQElementDescs zxmlDtd.dtdQElementDesc)N) rrrrrrrrrrrrrrrrrYs rc@seZdZdddZddZdS)rNcCs,t|dkrtd||_tj||ddS)Nrz*xmlElement got a wrong wrapper object typer|rr'rrrrszxmlElement.__init__cCsd|jtt|fS)Nz rrrrrrszxmlElement.__repr__)Nrrrrrrs rc@s&eZdZdddZddZddZdS) rNcCs,t|dkrtd||_tj||ddS)Nrz)xmlEntity got a wrong wrapper object typer|rr'rrrrszxmlEntity.__init__cCsd|jtt|fS)NzrrrrrrszxmlEntity.__repr__cCs&|durd}n|j}t||jdSrr)rrrrrrrszxmlEntity.handleEntity)N)rrrrrrrrrrrs rc@sVeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ dS)rNcCs|dkr||_dSd|_dSrrir'rrrrszError.__init__cCst|j}|S)z'The error code, e.g. an xmlParserError )r;ZxmlErrorGetCoder&rorrrrs z Error.codecCst|j}|S)z+What part of the library raised this error )r;ZxmlErrorGetDomainr&rorrrdomains z Error.domaincCst|j}|S)z the filename )r;ZxmlErrorGetFiler&rorrrrAs z Error.filecCst|j}|S)zhow consequent is the error )r;ZxmlErrorGetLevelr&rorrrr<s z Error.levelcCst|j}|S)zthe line number if available )r;ZxmlErrorGetLiner&rorrrlines z Error.linecCst|j}|S)z)human-readable informative error message )r;ZxmlErrorGetMessager&rorrrmessages z Error.messagecCs&|durd}n|j}t|j|}|S)z*Save the original error to the new place. N)r&r;Z xmlCopyError)rtoZto__or3rrr copyErrorszError.copyErrorcCst|jdS)zCleanup the error. N)r;Z xmlResetErrorr&rrrr resetErrorszError.resetError)N) rrrrrrrAr<rrrrrrrrrs  rc@seZdZd&ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%ZdS)'rNcCs,t|dkrtd||_tj||ddS)Nrz%xmlNs got a wrong wrapper object typer|rr'rrrrszxmlNs.__init__cCsd|jtt|fS)NzrrrrrrszxmlNs.__repr__cCs*t|j}|durtdt|d}|S)zDo a copy of the namespace. NzxmlCopyNamespace() failedr|)r;ZxmlCopyNamespacer&rrrr3 _xmlNs__tmprrr copyNamespaces  zxmlNs.copyNamespacecCs*t|j}|durtdt|d}|S)z Do a copy of an namespace list. NzxmlCopyNamespaceList() failedr|)r;ZxmlCopyNamespaceListr&rrrrrrcopyNamespaceLists  zxmlNs.copyNamespaceListcCst|jdS)z1Free up the structures associated to a namespace N)r;Z xmlFreeNsr&rrrrfreeNssz xmlNs.freeNscCst|jdS)zLFree up all the structures associated to the chained namespaces. N)r;Z xmlFreeNsListr&rrrr freeNsList szxmlNs.freeNsListcCsD|durd}n|j}t||j||}|dur6tdt|d}|Sr rrrrrPrVZ parent__or3rrrrrs  zxmlNs.newChildcCsD|durd}n|j}t||j||}|dur6tdt|d}|SrrrrrPrVrr3rrrrr"s  zxmlNs.newDocNodecCsD|durd}n|j}t||j||}|dur6tdt|d}|Srrrrrrr0s  zxmlNs.newDocNodeEatNamecCsD|durd}n|j}t||j||}|dur6tdt|d}|Srrrrrrr>s  zxmlNs.newDocRawNodecCs,t|j|}|durtdt|d}|S)z8Creation of a new node element. @ns is optional (None). NzxmlNewNodeEatName() failedr|)r;ZxmlNewNodeEatNamer&rr)rrPr3rrrrnewNodeEatNameHs zxmlNs.newNodeEatNamecCsD|durd}n|j}t||j||}|dur6tdt|d}|SrrrrrPr2rr3rrrrrOs  zxmlNs.newNsPropcCsD|durd}n|j}t||j||}|dur6tdt|d}|SrrrrrrrYs  zxmlNs.newNsPropEatNamecCsD|durd}n|j}t||j||}|dur6tdt|d}|Srrrrrrrcs  zxmlNs.newTextChildcCs&|durd}n|j}t||jdSr;r<rrrrrrr=vsz xmlNs.setNscCsD|durd}n|j}t||j||}|dur6tdt|d}|Sr>r?rrrrr@|s  zxmlNs.setNsPropcCs(|durd}n|j}t||j|}|SrJrK)rrrPrr3rrrrLszxmlNs.unsetNsPropcCst|jdS)zNamespace nodes in libxml don't match the XPath semantic. In a node set the namespace nodes are duplicated and the next pointer is set to the parent node in the XPath semantic. Check if such a node needs to be freed N)r;ZxmlXPathNodeSetFreeNsr&rrrrxpathNodeSetFreeNsszxmlNs.xpathNodeSetFreeNs)N)rrrrrrrrrrrrrrrrrr=r@rLrrrrrrs$      rc@sfeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ dS)rNcCs||_tj||ddSr{)r&r@rr'rrrrszoutputBuffer.__init__cCs*|durd}n|j}t|j|||dSrr)rrrrrrrrrsz+outputBuffer.htmlDocContentDumpFormatOutputcCs(|durd}n|j}t|j||dSrr)rrrrrrrrsz%outputBuffer.htmlDocContentDumpOutputcCs@|durd}n|j}|dur"d}n|j}t|j||||dSrr)rrrrrrrrrrrs z%outputBuffer.htmlNodeDumpFormatOutputcCs>|durd}n|j}|dur"d}n|j}t|j|||dSrr)rrrrrrrrrrs zoutputBuffer.htmlNodeDumpOutputcCsB|durd}n|j}|dur"d}n|j}t|j|||||dSrr)rrrr<rrrrrrrrs zoutputBuffer.nodeDumpOutputcCs(|durd}n|j}t|j||}|Sr r )rrrrr3rrrr szoutputBuffer.saveFileTocCs*|durd}n|j}t|j|||}|Sr r)rrrrrr3rrrrszoutputBuffer.saveFormatFileTocCst|j}|S)zKGives a pointer to the data currently held in the output buffer )r;ZxmlOutputBufferGetContentr&rorrrrs zoutputBuffer.getContentcCst|j||}|S)zWrite the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes. )r;ZxmlOutputBufferWriter&rr2rr3rrrr6szoutputBuffer.writecCst|j|}|S)zWrite the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes. )r;ZxmlOutputBufferWriteStringr&rr7r3rrr writeStringszoutputBuffer.writeString)N)rrrrrrrrrr rrr6rrrrrrs      rc@sFeZdZdddZddZddZdd Zd d Zd d ZddZ dS)rNcCs||_tj||ddSr{)r&r9rr'rrrrszinputBuffer.__init__cCs |jdkrt|jd|_dSr)r&r;r?rrrrr>s  zinputBuffer.__del__cCst|j|}|S)aYGrow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode TODO: one should be able to remove one extra copy by copying directly onto in->buffer or in->raw )r;ZxmlParserInputBufferGrowr&rr2r3rrrgrowszinputBuffer.growcCst|j||}|S)zPush the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode. )r;ZxmlParserInputBufferPushr&rrrrpushszinputBuffer.pushcCst|j|}|S)zRefresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8 )r;ZxmlParserInputBufferReadr&rrrrr.szinputBuffer.readcCs,|durd}n|j}t||j|||}|Sz%Setup an XML reader with new options Nr&r;ZxmlTextReaderSetup)rrQr rrrRr3rrrSetup%szinputBuffer.SetupcCs2t|j|}|durtdt|d}||_|S)z2Create an xmlTextReader structure fed with @input NzxmlNewTextReader() failedr|)r;ZxmlNewTextReaderr&rrr)rrr3Z_inputBuffer__tmprrr newTextReader,s  zinputBuffer.newTextReader)N) rrrrr>rrr.rrrrrrrs    rc@s6eZdZd ddZddZddZdd Zd d ZdS) rNcCs|dkr||_dSd|_dSrrir'rrrr5szxmlReg.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlRegFreeRegexprrrrr>9s  zxmlReg.__del__cCst|j|}|S)z4Check if the regular expression generates the value )r;Z xmlRegexpExecr&)rrVr3rrr regexpExecBszxmlReg.regexpExeccCst|j}|S)z/Check if the regular expression is determinist )r;ZxmlRegexpIsDeterministr&rorrrregexpIsDeterministGs zxmlReg.regexpIsDeterministcCst||jdS)z5Print the content of the compiled regular expression N)r;ZxmlRegexpPrintr&rrrr regexpPrintLszxmlReg.regexpPrint)N)rrrrr>rrrrrrrr4s   rc@s.eZdZd ddZddZddZdd ZdS) rNcCs|dkr||_dSd|_dSrrir'rrrrQszrelaxNgParserCtxt.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlRelaxNGFreeParserCtxtrrrrr>Us  zrelaxNgParserCtxt.__del__cCs*t|j}|durtdt|d}|S)parse a schema definition resource and build an internal XML Schema structure which can be used to validate instances. NzxmlRelaxNGParse() failedr|)r;ZxmlRelaxNGParser&r! relaxNgSchema)rr3Z_relaxNgParserCtxt__tmprrr relaxNGParse^s  zrelaxNgParserCtxt.relaxNGParsecCst|j|}|S)zSemi private function used to pass information to a parser context which are a combination of xmlRelaxNGParserFlag . )r;ZxmlRelaxParserSetFlagr&r[rrrrelaxParserSetFlaggsz$relaxNgParserCtxt.relaxParserSetFlag)N)rrrrr>rrrrrrrPs   rc@s>eZdZdddZddZddZdd Zd d Zd d ZdS)rNcCs|dkr||_dSd|_dSrrir'rrrrnszrelaxNgSchema.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlRelaxNGFreerrrrr>rs  zrelaxNgSchema.__del__cCst||jdS)zDump a RelaxNG structure back N)r;ZxmlRelaxNGDumpr&rrrr relaxNGDump{szrelaxNgSchema.relaxNGDumpcCst||jdS)z#Dump the transformed RelaxNG tree. N)r;ZxmlRelaxNGDumpTreer&rrrrrelaxNGDumpTreeszrelaxNgSchema.relaxNGDumpTreecCs0t|j}|durtdt|d}||_|S)zOCreate an XML RelaxNGs validation context based on the given schema NzxmlRelaxNGNewValidCtxt() failedr|)r;ZxmlRelaxNGNewValidCtxtr&rrelaxNgValidCtxtschema)rr3Z_relaxNgSchema__tmprrrrelaxNGNewValidCtxts   z!relaxNgSchema.relaxNGNewValidCtxtcCs&|durd}n|j}t||j}|Sa6Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is None, then RelaxNG validation is deactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated. Nr&r;ZxmlTextReaderRelaxNGSetSchemarPrrrRelaxNGSetSchemaszrelaxNgSchema.RelaxNGSetSchema)N) rrrrr>rrrrrrrrrms    rc@sNeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ dS)rNcCsd|_||_tj||ddSr{)rr&rrr'rrrrszrelaxNgValidCtxt.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlRelaxNGFreeValidCtxtrrrrr>s  zrelaxNgValidCtxt.__del__cCs&|durd}n|j}t|j|}|Srrrrrrrsz#relaxNgValidCtxt.relaxNGValidateDoccCs<|durd}n|j}|dur"d}n|j}t|j||}|Srrrrr_rrr3rrrrs z+relaxNgValidCtxt.relaxNGValidateFullElementcCs<|durd}n|j}|dur"d}n|j}t|j||}|Srrrrrrrs z*relaxNgValidCtxt.relaxNGValidatePopElementcCst|j||}|Sz;check the CData parsed for validation in the current stack )r;ZxmlRelaxNGValidatePushCDatar&rrLr2r3rrrrelaxNGValidatePushCDatasz)relaxNgValidCtxt.relaxNGValidatePushCDatacCs<|durd}n|j}|dur"d}n|j}t|j||}|Srrrrrrrs z+relaxNgValidCtxt.relaxNGValidatePushElementcCs(|durd}n|j}t||j|}|SzUse RelaxNG schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is None, then RelaxNG schema validation is deactivated. Nr&r;Z xmlTextReaderRelaxNGValidateCtxtrrQrrRr3rrrRelaxNGValidateCtxtsz$relaxNgValidCtxt.RelaxNGValidateCtxt)N) rrrrr>rrrrrrrrrrrs     rc@s&eZdZdddZddZddZdS) rNcCs|dkr||_dSd|_dSrrir'rrrrszSchemaParserCtxt.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlSchemaFreeParserCtxtrrrrr>s  zSchemaParserCtxt.__del__cCs*t|j}|durtdt|d}|S)rNzxmlSchemaParse() failedr|)r;ZxmlSchemaParser&r!Schema)rr3Z_SchemaParserCtxt__tmprrr schemaParses  zSchemaParserCtxt.schemaParse)N)rrrrr>r rrrrrs  rc@s6eZdZd ddZddZddZdd Zd d ZdS) rNcCs|dkr||_dSd|_dSrrir'rrrrszSchema.__init__cCs |jdkrt|jd|_dSr)r&r;Z xmlSchemaFreerrrrr>s  zSchema.__del__cCs&|durd}n|j}t||j}|Sa6Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is None, then Schema validation is deactivated. The @schema should not be freed until the reader is deallocated or its use has been deactivated. Nr&r;ZxmlTextReaderSetSchemarPrrr SetSchemaszSchema.SetSchemacCst||jdS)zDump a Schema structure. N)r;Z xmlSchemaDumpr&rrrr schemaDumpszSchema.schemaDumpcCs0t|j}|durtdt|d}||_|S)zOCreate an XML Schemas validation context based on the given schema. NzxmlSchemaNewValidCtxt() failedr|)r;ZxmlSchemaNewValidCtxtr&rSchemaValidCtxtr)rr3Z _Schema__tmprrrschemaNewValidCtxts   zSchema.schemaNewValidCtxt)N)rrrrr>r r rrrrrrs   rc@sfeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ dS)rNcCsd|_||_tj||ddSr{)rr&rrr'rrrr#szSchemaValidCtxt.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlSchemaFreeValidCtxtrrrrr>(s  zSchemaValidCtxt.__del__cCs(|durd}n|j}t||j|}|SzUse W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is None, then XML Schema validation is deactivated. Nr&r;ZxmlTextReaderSchemaValidateCtxtrrrrSchemaValidateCtxt1sz"SchemaValidCtxt.SchemaValidateCtxtcCst|j}|S)z3Check if any error was detected during validation. )r;ZxmlSchemaIsValidr&rorrr schemaIsValid?s zSchemaValidCtxt.schemaIsValidcCst|j|}|S)z3Sets the options to be used during the validation. )r;ZxmlSchemaSetValidOptionsr&rqrrrschemaSetValidOptionsDsz%SchemaValidCtxt.schemaSetValidOptionscCst|j}|S)z$Get the validation context options. )r;ZxmlSchemaValidCtxtGetOptionsr&rorrrschemaValidCtxtGetOptionsIs z)SchemaValidCtxt.schemaValidCtxtGetOptionscCs*t|j}|durtdt|d}|S)zOallow access to the parser context of the schema validation context Nz(xmlSchemaValidCtxtGetParserCtxt() failedr|)r;ZxmlSchemaValidCtxtGetParserCtxtr&r!r)rr3Z_SchemaValidCtxt__tmprrrschemaValidCtxtGetParserCtxtNs  z,SchemaValidCtxt.schemaValidCtxtGetParserCtxtcCs&|durd}n|j}t|j|}|SrrVrrrrrWVsz!SchemaValidCtxt.schemaValidateDoccCst|j||}|S)zpDo a schemas validation of the given resource, it will use the SAX streamable validation internally. )r;ZxmlSchemaValidateFiler&)rr rr3rrrschemaValidateFile]sz"SchemaValidCtxt.schemaValidateFilecCs&|durd}n|j}t|j|}|Sr^r_)rr_rr3rrrracsz(SchemaValidCtxt.schemaValidateOneElementcCst|j|dS)zlWorkaround to provide file error reporting information when this is not provided by current APIs N)r;ZxmlSchemaValidateSetFilenamer&)rr rrrschemaValidateSetFilenamejsz)SchemaValidCtxt.schemaValidateSetFilename)N)rrrrr>rrrrrrWrrarrrrrr"s  rc@s&eZdZdddZddZddZdS) rNcCs|dkr||_dSd|_dSrrir'rrrrpszxmlTextReaderLocator.__init__cCst|j}|S)z+Obtain the base URI for the given locator. )r;ZxmlTextReaderLocatorBaseURIr&rorrrBaseURIxs zxmlTextReaderLocator.BaseURIcCst|j}|S)z.Obtain the line number for the given locator. )r;ZxmlTextReaderLocatorLineNumberr&rorrr LineNumber}s zxmlTextReaderLocator.LineNumber)N)rrrrrrrrrrros rc@seZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d`daZ2dbdcZ3dddeZ4dfdgZ5dhdiZ6djdkZ7dldmZ8dndoZ9dpdqZ:drdsZ;dtduZdzd{Z?d|d}Z@d~dZAddZBddZCdS)rNcCsd|_||_tj||ddSr{)rr&rrr'rrrrszxmlTextReader.__init__cCs |jdkrt|jd|_dSrrrrrrr>s  zxmlTextReader.__del__cCst|j}|S)z6Provides the number of attributes of the current node )r;ZxmlTextReaderAttributeCountr&rorrrAttributeCounts zxmlTextReader.AttributeCountcCst|j}|S)zThe base URI of the node. )r;ZxmlTextReaderConstBaseUrir&rorrrBaseUris zxmlTextReader.BaseUricCst|j}|S)a@This function provides the current index of the parser used by the reader, relative to the start of the current entity. This function actually just wraps a call to xmlBytesConsumed() for the parser context associated with the reader. See xmlBytesConsumed() for more information. )r;ZxmlTextReaderByteConsumedr&rorrr ByteConsumeds zxmlTextReader.ByteConsumedcCst|j}|S)zThis method releases any resources allocated by the current instance changes the state to Closed and close any underlying input. )r;ZxmlTextReaderCloser&rorrrCloses zxmlTextReader.ClosecCs*t|j}|durtdt|d}|S)a]Hacking interface allowing to get the xmlDocPtr corresponding to the current document being accessed by the xmlTextReader. NOTE: as a result of this call, the reader will not destroy the associated XML document and calling xmlFreeDoc() on the result is needed once the reader parsing has finished. Nz xmlTextReaderCurrentDoc() failedr|)r;ZxmlTextReaderCurrentDocr&rrrr3Z_xmlTextReader__tmprrr CurrentDocs  zxmlTextReader.CurrentDoccCs*t|j}|durtdt|d}|S)zHacking interface allowing to get the xmlNodePtr corresponding to the current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads. Nz!xmlTextReaderCurrentNode() failedr|)r;ZxmlTextReaderCurrentNoder&rrrrrr CurrentNodes  zxmlTextReader.CurrentNodecCst|j}|S)z#The depth of the node in the tree. )r;ZxmlTextReaderDepthr&rorrrDepths zxmlTextReader.DepthcCst|j}|S)z3Determine the encoding of the document being read. )r;ZxmlTextReaderConstEncodingr&rorrrEncodings zxmlTextReader.EncodingcCs*t|j}|durtdt|d}|S)zReads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call NzxmlTextReaderExpand() failedr|)r;ZxmlTextReaderExpandr&rrrrrrExpands  zxmlTextReader.ExpandcCst|j|}|S)zRProvides the value of the attribute with the specified qualified name. )r;ZxmlTextReaderGetAttributer&r!rrr GetAttributeszxmlTextReader.GetAttributecCst|j|}|S)zlProvides the value of the attribute with the specified index relative to the containing element. )r;ZxmlTextReaderGetAttributeNor&rnor3rrrGetAttributeNoszxmlTextReader.GetAttributeNocCst|j||}|S)z.Provides the value of the specified attribute )r;ZxmlTextReaderGetAttributeNsr&rZ localNameZ namespaceURIr3rrrGetAttributeNsszxmlTextReader.GetAttributeNscCst|j}|S)z8Provide the column number of the current parsing point. )r;Z"xmlTextReaderGetParserColumnNumberr&rorrrGetParserColumnNumbers z#xmlTextReader.GetParserColumnNumbercCst|j}|S)z6Provide the line number of the current parsing point. )r;Z xmlTextReaderGetParserLineNumberr&rorrrGetParserLineNumbers z!xmlTextReader.GetParserLineNumbercCst|j|}|S)z#Read the parser internal property. )r;ZxmlTextReaderGetParserPropr&)rr&r3rrr GetParserPropszxmlTextReader.GetParserPropcCs*t|j}|durtdt|d}|S)aMethod to get the remainder of the buffered XML. this method stops the parser, set its state to End Of File and return the input stream with what is left that the parser did not use. The implementation is not good, the parser certainly progressed past what's left in reader->input, and there is an allocation problem. Best would be to rewrite it differently. Nz"xmlTextReaderGetRemainder() failedr|)r;ZxmlTextReaderGetRemainderr&rrrrrr GetRemainders  zxmlTextReader.GetRemaindercCst|j}|S)z!Whether the node has attributes. )r;ZxmlTextReaderHasAttributesr&rorrr HasAttributess zxmlTextReader.HasAttributescCst|j}|S)z(Whether the node can have a text value. )r;ZxmlTextReaderHasValuer&rorrrHasValues zxmlTextReader.HasValuecCst|j}|S)ziWhether an Attribute node was generated from the default value defined in the DTD or schema. )r;ZxmlTextReaderIsDefaultr&rorrr IsDefault s zxmlTextReader.IsDefaultcCst|j}|S)z#Check if the current node is empty )r;ZxmlTextReaderIsEmptyElementr&rorrrIsEmptyElements zxmlTextReader.IsEmptyElementcCst|j}|S)zjDetermine whether the current node is a namespace declaration rather than a regular attribute. )r;ZxmlTextReaderIsNamespaceDeclr&rorrrIsNamespaceDecls zxmlTextReader.IsNamespaceDeclcCst|j}|S)z5Retrieve the validity status from the parser context )r;ZxmlTextReaderIsValidr&rorrrIsValids zxmlTextReader.IsValidcCst|j}|S)zThe local name of the node. )r;ZxmlTextReaderConstLocalNamer&rorrr LocalName!s zxmlTextReader.LocalNamecCst|j|}|S)zLResolves a namespace prefix in the scope of the current element. )r;ZxmlTextReaderLookupNamespacer&rrr3rrrLookupNamespace&szxmlTextReader.LookupNamespacecCst|j|}|S)zjMoves the position of the current instance to the attribute with the specified qualified name. )r;ZxmlTextReaderMoveToAttributer&r!rrrMoveToAttribute,szxmlTextReader.MoveToAttributecCst|j|}|S)zMoves the position of the current instance to the attribute with the specified index relative to the containing element. )r;ZxmlTextReaderMoveToAttributeNor&r&rrrMoveToAttributeNo2szxmlTextReader.MoveToAttributeNocCst|j||}|S)zxMoves the position of the current instance to the attribute with the specified local name and namespace URI. )r;ZxmlTextReaderMoveToAttributeNsr&r)rrrMoveToAttributeNs8szxmlTextReader.MoveToAttributeNscCst|j}|S)zmMoves the position of the current instance to the node that contains the current Attribute node. )r;ZxmlTextReaderMoveToElementr&rorrr MoveToElement>s zxmlTextReader.MoveToElementcCst|j}|S)zoMoves the position of the current instance to the first attribute associated with the current node. )r;Z!xmlTextReaderMoveToFirstAttributer&rorrrMoveToFirstAttributeDs z"xmlTextReader.MoveToFirstAttributecCst|j}|S)znMoves the position of the current instance to the next attribute associated with the current node. )r;Z xmlTextReaderMoveToNextAttributer&rorrrMoveToNextAttributeJs z!xmlTextReader.MoveToNextAttributecCst|j}|S)zrrrrr r!r"r#r$r%r(r*r+r,r-r.r/r0r1r2r3r4r5r7r8r9r:r;r<r=r>r?rArBrCrDrSrErFrGrHrIrJrKrLrMrOrPrQrRrrUrrWrrXr rrYrZr[r\r]rrrrrs              rc@seZdZd4ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)5rNcCs|dkr||_dSd|_dSrrir'rrrr;sz URI.__init__cCs |jdkrt|jd|_dSr)r&r;Z xmlFreeURIrrrrr>?s  z URI.__del__cCst|j}|S)z#Get the authority part from an URI )r;ZxmlURIGetAuthorityr&rorrr authorityEs z URI.authoritycCst|j}|S)z"Get the fragment part from an URI )r;ZxmlURIGetFragmentr&rorrrfragmentJs z URI.fragmentcCst|j}|S)z Get the opaque part from an URI )r;ZxmlURIGetOpaquer&rorrropaqueOs z URI.opaquecCst|j}|S)zGet the path part from an URI )r;Z xmlURIGetPathr&rorrrrTs zURI.pathcCst|j}|S)zGet the port part from an URI )r;Z xmlURIGetPortr&rorrrrtYs zURI.portcCst|j}|S)zGet the query part from an URI )r;ZxmlURIGetQueryr&rorrrquery^s z URI.querycCst|j}|S)zIGet the raw query part from an URI (i.e. the unescaped form). )r;ZxmlURIGetQueryRawr&rorrrqueryRawcs z URI.queryRawcCst|j}|S)z Get the scheme part from an URI )r;ZxmlURIGetSchemer&rorrrschemeis z URI.schemecCst|j}|S)z Get the server part from an URI )r;ZxmlURIGetServerr&rorrrserverns z URI.servercCst|j|dS)z"Set the authority part of an URI. N)r;ZxmlURISetAuthorityr&)rr^rrr setAuthoritysszURI.setAuthoritycCst|j|dS)z!Set the fragment part of an URI. N)r;ZxmlURISetFragmentr&)rr_rrr setFragmentwszURI.setFragmentcCst|j|dS)zSet the opaque part of an URI. N)r;ZxmlURISetOpaquer&)rr`rrr setOpaque{sz URI.setOpaquecCst|j|dS)zSet the path part of an URI. N)r;Z xmlURISetPathr&)rrrrrsetPathsz URI.setPathcCst|j|dS)zSet the port part of an URI. N)r;Z xmlURISetPortr&)rrtrrrsetPortsz URI.setPortcCst|j|dS)zSet the query part of an URI. N)r;ZxmlURISetQueryr&)rrarrrsetQuerysz URI.setQuerycCst|j|dS)zr^r_r`rrtrarbrcrdrerfrgrhrirjrkrlrmrnrurorqrrrrrrr:s2  rc@seZdZd"ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!ZdS)#rNcCs||_tj||ddSr{)r&rrr'rrrrszValidCtxt.__init__cCs |jdkrt|jd|_dSr)r&r;ZxmlFreeValidCtxtrrrrr>s  zValidCtxt.__del__cCs@|durd}n|j}|dur"d}n|j}t|j||||}|Sr!r")rrr_rPr2rrr3rrrr#s z*ValidCtxt.validCtxtNormalizeAttributeValuecCs&|durd}n|j}t|j|}|Sr$r%rrrrr&szValidCtxt.validateDocumentcCs&|durd}n|j}t|j|}|Sr'r(rrrrr)szValidCtxt.validateDocumentFinalcCs<|durd}n|j}|dur"d}n|j}t|j||}|Sr*r+)rrrrr,r3rrrr-s zValidCtxt.validateDtdcCs&|durd}n|j}t|j|}|Sr.r/rrrrr0szValidCtxt.validateDtdFinalcCs<|durd}n|j}|dur"d}n|j}t|j||}|Sr1r2rrrrr3s zValidCtxt.validateElementcCs(|durd}n|j}t|j||}|Sr4r5)rrrbrr3rrrr6 szValidCtxt.validateNotationUsec CsT|durd}n|j}|dur"d}n|j}|dur6d}n|j}t|j||||}|Sr7r8) rrr_rr2rrrQr3rrrr9szValidCtxt.validateOneAttributecCs<|durd}n|j}|dur"d}n|j}t|j||}|Sr:r;rrrrr<#s zValidCtxt.validateOneElementc CsV|durd}n|j}|dur"d}n|j}|dur6d}n|j}t|j|||||} | Sr=r>) rrr_rrr2rrrr3rrrr?1szValidCtxt.validateOneNamespacecCs>|durd}n|j}|dur"d}n|j}t|j|||}|Sr@rArrr_rCrrr3rrrrDBs zValidCtxt.validatePopElementcCst|j||}|Sr)r;ZxmlValidatePushCDatar&rrrrvalidatePushCDataKszValidCtxt.validatePushCDatacCs>|durd}n|j}|dur"d}n|j}t|j|||}|SrErFrsrrrrGPs zValidCtxt.validatePushElementcCs&|durd}n|j}t|j|}|SrHrIrrrrrJYszValidCtxt.validateRoot)N)rrrrr>r#r&r)r-r0r3r6r9r<r?rDrtrGrJrrrrrs          rc@seZdZd4ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)5rNcCs|dkr||_dSd|_dSrrir'rrrrdszxpathContext.__init__cCs*t|j}|durtdt|d}|S)z!Get the doc from an xpathContext NzxmlXPathGetContextDoc() failedr|)r;ZxmlXPathGetContextDocr&r#rrr3_xpathContext__tmprrr contextDocis  zxpathContext.contextDoccCs*t|j}|durtdt|d}|S)*Get the current node from an xpathContext NzxmlXPathGetContextNode() failedr|)r;ZxmlXPathGetContextNoder&r#rrurrr contextNodeps  zxpathContext.contextNodecCst|j}|Srx)r;ZxmlXPathGetContextPositionr&rorrrcontextPositionws zxpathContext.contextPositioncCst|j}|Srz)r;ZxmlXPathGetContextSizer&rorrr contextSize|s zxpathContext.contextSizecCst|j}|S)z+Get the current function name xpathContext )r;ZxmlXPathGetFunctionr&rorrrfunctions zxpathContext.functioncCst|j}|S)z/Get the current function name URI xpathContext )r;ZxmlXPathGetFunctionURIr&rorrr functionURIs zxpathContext.functionURIcCs&|durd}n|j}t|j|dS)zSet the doc of an xpathContext N)r&r;ZxmlXPathSetContextDocr8rrr setContextDocszxpathContext.setContextDoccCs&|durd}n|j}t|j|dS)z(Set the current node of an xpathContext N)r&r;ZxmlXPathSetContextNoderrrrrszxpathContext.setContextNodecCst|j|||}|S)zd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d`daZ2dbdcZ3dddeZ4dfdgZ5dhdiZ6djdkZ7dldmZ8dndoZ9dpdqZ:drdsZ;dtduZdzd{Z?d|d}Z@dS)rNcCs|dkr||_dSd|_dSrrir'rrrrszxpathParserContext.__init__cCs*t|j}|durtdt|d}|S)z0Get the xpathContext from an xpathParserContext Nz!xmlXPathParserGetContext() failedr|)r;ZxmlXPathParserGetContextr&r#r)rr3_xpathParserContext__tmprrrcontext s  zxpathParserContext.contextcCst|jdS)zImplement the add operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function. N)r;ZxmlXPathAddValuesr&rrrrxpathAddValuessz!xpathParserContext.xpathAddValuescCst|j|dS)auImplement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero N)r;ZxmlXPathBooleanFunctionr&rnargsrrrxpathBooleanFunctionsz'xpathParserContext.xpathBooleanFunctioncCst|j|dS)zImplement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer. N)r;ZxmlXPathCeilingFunctionr&rrrrxpathCeilingFunction'sz'xpathParserContext.xpathCeilingFunctioncCst|j||}|S)aImplement the compare operation on XPath objects: @arg1 < @arg2 (1, 1, ... @arg1 <= @arg2 (1, 0, ... @arg1 > @arg2 (0, 1, ... @arg1 >= @arg2 (0, 0, ... When neither object to be compared is a node-set and the operator is <=, <, >=, >, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The < comparison will be true if and only if the first number is less than the second number. The <= comparison will be true if and only if the first number is less than or equal to the second number. The > comparison will be true if and only if the first number is greater than the second number. The >= comparison will be true if and only if the first number is greater than or equal to the second number. )r;ZxmlXPathCompareValuesr&)rinfstrictr3rrrxpathCompareValues.sz%xpathParserContext.xpathCompareValuescCst|j|dS)zImplement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments. N)r;ZxmlXPathConcatFunctionr&rrrrxpathConcatFunction@sz&xpathParserContext.xpathConcatFunctioncCst|j|dS)zImplement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false. N)r;ZxmlXPathContainsFunctionr&rrrrxpathContainsFunctionFsz(xpathParserContext.xpathContainsFunctioncCst|j|dS)z?ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiiiiiiiiiiii i!iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiiiiiiiiiiiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4i5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibiiiiiiiiiiiiiiiiiiiiiiiiiiixiyizi{iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiii@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRirisitiuiviiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiiiiiiiiiiiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4i5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiliminioiiiiiiiiiiiiii i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i iii$i%iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiipiqirisitiXr)ii@iiiiii@i(r;typesrr/rrrrr!r"r#r$r9r@rDrhrrrsrrZPARSER_LOADDTDZPARSER_DEFAULTATTRSZPARSER_VALIDATEZPARSER_SUBST_ENTITIESZ PARSER_SEVERITY_VALIDITY_WARNINGZPARSER_SEVERITY_VALIDITY_ERRORZPARSER_SEVERITY_WARNINGZPARSER_SEVERITY_ERRORrrrrrrrrrrrrrrrrrr rrrrrrrrr r!r$r%r'r)r,r/r3r5r6r8r;r=r>rArBrCrDrErFrHrIrJrKrLrMrNrOrPrRrSrTrUrWrXrYr[r\r]r^r_r`rarbrerfrgrhrirjrkrlrmrnrorprqrrrwryrzr{r|r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r rrrrrrrrrrrrrr r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr~rr?rrrrrrrrrrrrrrrrrrrrZHTML_NAZ HTML_INVALIDZHTML_DEPRECATEDZ HTML_VALIDZ HTML_REQUIREDZHTML_PARSE_RECOVERZHTML_PARSE_NODEFDTDZHTML_PARSE_NOERRORZHTML_PARSE_NOWARNINGZHTML_PARSE_PEDANTICZHTML_PARSE_NOBLANKSZHTML_PARSE_NONETZHTML_PARSE_NOIMPLIEDZHTML_PARSE_COMPACTZHTML_PARSE_IGNORE_ENCZXLINK_ACTUATE_NONEZXLINK_ACTUATE_AUTOZXLINK_ACTUATE_ONREQUESTZXLINK_SHOW_NONEZXLINK_SHOW_NEWZXLINK_SHOW_EMBEDZXLINK_SHOW_REPLACEZXLINK_TYPE_NONEZXLINK_TYPE_SIMPLEZXLINK_TYPE_EXTENDEDZXLINK_TYPE_EXTENDED_SETZXML_ATTRIBUTE_CDATAZXML_ATTRIBUTE_IDZXML_ATTRIBUTE_IDREFZXML_ATTRIBUTE_IDREFSZXML_ATTRIBUTE_ENTITYZXML_ATTRIBUTE_ENTITIESZXML_ATTRIBUTE_NMTOKENZXML_ATTRIBUTE_NMTOKENSZXML_ATTRIBUTE_ENUMERATIONZXML_ATTRIBUTE_NOTATIONZXML_ELEMENT_NODEZXML_ATTRIBUTE_NODEZ XML_TEXT_NODEZXML_CDATA_SECTION_NODEZXML_ENTITY_REF_NODEZXML_ENTITY_NODEZ XML_PI_NODEZXML_COMMENT_NODEZXML_DOCUMENT_NODEZXML_DOCUMENT_TYPE_NODEZXML_DOCUMENT_FRAG_NODEZXML_NOTATION_NODEZXML_HTML_DOCUMENT_NODEZ XML_DTD_NODEZXML_ELEMENT_DECLZXML_ATTRIBUTE_DECLZXML_ENTITY_DECLZXML_NAMESPACE_DECLZXML_XINCLUDE_STARTZXML_XINCLUDE_ENDZXML_DOCB_DOCUMENT_NODEZXML_ATTRIBUTE_NONEZXML_ATTRIBUTE_REQUIREDZXML_ATTRIBUTE_IMPLIEDZXML_ATTRIBUTE_FIXEDZXML_BUFFER_ALLOC_DOUBLEITZXML_BUFFER_ALLOC_EXACTZXML_BUFFER_ALLOC_IMMUTABLEZXML_BUFFER_ALLOC_IOZXML_BUFFER_ALLOC_HYBRIDZXML_BUFFER_ALLOC_BOUNDEDZ XML_ERR_OKZXML_ERR_INTERNAL_ERRORZXML_ERR_NO_MEMORYZXML_ERR_DOCUMENT_STARTZXML_ERR_DOCUMENT_EMPTYZXML_ERR_DOCUMENT_ENDZXML_ERR_INVALID_HEX_CHARREFZXML_ERR_INVALID_DEC_CHARREFZXML_ERR_INVALID_CHARREFZXML_ERR_INVALID_CHARZXML_ERR_CHARREF_AT_EOFZXML_ERR_CHARREF_IN_PROLOGZXML_ERR_CHARREF_IN_EPILOGZXML_ERR_CHARREF_IN_DTDZXML_ERR_ENTITYREF_AT_EOFZXML_ERR_ENTITYREF_IN_PROLOGZXML_ERR_ENTITYREF_IN_EPILOGZXML_ERR_ENTITYREF_IN_DTDZXML_ERR_PEREF_AT_EOFZXML_ERR_PEREF_IN_PROLOGZXML_ERR_PEREF_IN_EPILOGZXML_ERR_PEREF_IN_INT_SUBSETZXML_ERR_ENTITYREF_NO_NAMEZ!XML_ERR_ENTITYREF_SEMICOL_MISSINGZXML_ERR_PEREF_NO_NAMEZXML_ERR_PEREF_SEMICOL_MISSINGZXML_ERR_UNDECLARED_ENTITYZXML_WAR_UNDECLARED_ENTITYZXML_ERR_UNPARSED_ENTITYZXML_ERR_ENTITY_IS_EXTERNALZXML_ERR_ENTITY_IS_PARAMETERZXML_ERR_UNKNOWN_ENCODINGZXML_ERR_UNSUPPORTED_ENCODINGZXML_ERR_STRING_NOT_STARTEDZXML_ERR_STRING_NOT_CLOSEDZXML_ERR_NS_DECL_ERRORZXML_ERR_ENTITY_NOT_STARTEDZXML_ERR_ENTITY_NOT_FINISHEDZXML_ERR_LT_IN_ATTRIBUTEZXML_ERR_ATTRIBUTE_NOT_STARTEDZXML_ERR_ATTRIBUTE_NOT_FINISHEDZXML_ERR_ATTRIBUTE_WITHOUT_VALUEZXML_ERR_ATTRIBUTE_REDEFINEDZXML_ERR_LITERAL_NOT_STARTEDZXML_ERR_LITERAL_NOT_FINISHEDZXML_ERR_COMMENT_NOT_FINISHEDZXML_ERR_PI_NOT_STARTEDZXML_ERR_PI_NOT_FINISHEDZXML_ERR_NOTATION_NOT_STARTEDZXML_ERR_NOTATION_NOT_FINISHEDZXML_ERR_ATTLIST_NOT_STARTEDZXML_ERR_ATTLIST_NOT_FINISHEDZXML_ERR_MIXED_NOT_STARTEDZXML_ERR_MIXED_NOT_FINISHEDZXML_ERR_ELEMCONTENT_NOT_STARTEDZ XML_ERR_ELEMCONTENT_NOT_FINISHEDZXML_ERR_XMLDECL_NOT_STARTEDZXML_ERR_XMLDECL_NOT_FINISHEDZXML_ERR_CONDSEC_NOT_STARTEDZXML_ERR_CONDSEC_NOT_FINISHEDZXML_ERR_EXT_SUBSET_NOT_FINISHEDZXML_ERR_DOCTYPE_NOT_FINISHEDZXML_ERR_MISPLACED_CDATA_ENDZXML_ERR_CDATA_NOT_FINISHEDZXML_ERR_RESERVED_XML_NAMEZXML_ERR_SPACE_REQUIREDZXML_ERR_SEPARATOR_REQUIREDZXML_ERR_NMTOKEN_REQUIREDZXML_ERR_NAME_REQUIREDZXML_ERR_PCDATA_REQUIREDZXML_ERR_URI_REQUIREDZXML_ERR_PUBID_REQUIREDZXML_ERR_LT_REQUIREDZXML_ERR_GT_REQUIREDZXML_ERR_LTSLASH_REQUIREDZXML_ERR_EQUAL_REQUIREDZXML_ERR_TAG_NAME_MISMATCHZXML_ERR_TAG_NOT_FINISHEDZXML_ERR_STANDALONE_VALUEZXML_ERR_ENCODING_NAMEZXML_ERR_HYPHEN_IN_COMMENTZXML_ERR_INVALID_ENCODINGZXML_ERR_EXT_ENTITY_STANDALONEZXML_ERR_CONDSEC_INVALIDZXML_ERR_VALUE_REQUIREDZXML_ERR_NOT_WELL_BALANCEDZXML_ERR_EXTRA_CONTENTZXML_ERR_ENTITY_CHAR_ERRORZXML_ERR_ENTITY_PE_INTERNALZXML_ERR_ENTITY_LOOPZXML_ERR_ENTITY_BOUNDARYZXML_ERR_INVALID_URIZXML_ERR_URI_FRAGMENTZXML_WAR_CATALOG_PIZXML_ERR_NO_DTDZXML_ERR_CONDSEC_INVALID_KEYWORDZXML_ERR_VERSION_MISSINGZXML_WAR_UNKNOWN_VERSIONZXML_WAR_LANG_VALUEZXML_WAR_NS_URIZXML_WAR_NS_URI_RELATIVEZXML_ERR_MISSING_ENCODINGZXML_WAR_SPACE_VALUEZXML_ERR_NOT_STANDALONEZXML_ERR_ENTITY_PROCESSINGZXML_ERR_NOTATION_PROCESSINGZXML_WAR_NS_COLUMNZXML_WAR_ENTITY_REDEFINEDZXML_ERR_UNKNOWN_VERSIONZXML_ERR_VERSION_MISMATCHZXML_ERR_NAME_TOO_LONGZXML_ERR_USER_STOPZXML_NS_ERR_XML_NAMESPACEZXML_NS_ERR_UNDEFINED_NAMESPACEZXML_NS_ERR_QNAMEZXML_NS_ERR_ATTRIBUTE_REDEFINEDZXML_NS_ERR_EMPTYZXML_NS_ERR_COLONZXML_DTD_ATTRIBUTE_DEFAULTZXML_DTD_ATTRIBUTE_REDEFINEDZXML_DTD_ATTRIBUTE_VALUEZXML_DTD_CONTENT_ERRORZXML_DTD_CONTENT_MODELZXML_DTD_CONTENT_NOT_DETERMINISTZXML_DTD_DIFFERENT_PREFIXZXML_DTD_ELEM_DEFAULT_NAMESPACEZXML_DTD_ELEM_NAMESPACEZXML_DTD_ELEM_REDEFINEDZXML_DTD_EMPTY_NOTATIONZXML_DTD_ENTITY_TYPEZXML_DTD_ID_FIXEDZXML_DTD_ID_REDEFINEDZXML_DTD_ID_SUBSETZXML_DTD_INVALID_CHILDZXML_DTD_INVALID_DEFAULTZXML_DTD_LOAD_ERRORZXML_DTD_MISSING_ATTRIBUTEZXML_DTD_MIXED_CORRUPTZXML_DTD_MULTIPLE_IDZXML_DTD_NO_DOCZXML_DTD_NO_DTDZXML_DTD_NO_ELEM_NAMEZXML_DTD_NO_PREFIXZXML_DTD_NO_ROOTZXML_DTD_NOTATION_REDEFINEDZXML_DTD_NOTATION_VALUEZXML_DTD_NOT_EMPTYZXML_DTD_NOT_PCDATAZXML_DTD_NOT_STANDALONEZXML_DTD_ROOT_NAMEZXML_DTD_STANDALONE_WHITE_SPACEZXML_DTD_UNKNOWN_ATTRIBUTEZXML_DTD_UNKNOWN_ELEMZXML_DTD_UNKNOWN_ENTITYZXML_DTD_UNKNOWN_IDZXML_DTD_UNKNOWN_NOTATIONZXML_DTD_STANDALONE_DEFAULTEDZXML_DTD_XMLID_VALUEZXML_DTD_XMLID_TYPEZXML_DTD_DUP_TOKENZXML_HTML_STRUCURE_ERRORZXML_HTML_UNKNOWN_TAGZXML_RNGP_ANYNAME_ATTR_ANCESTORZXML_RNGP_ATTR_CONFLICTZXML_RNGP_ATTRIBUTE_CHILDRENZXML_RNGP_ATTRIBUTE_CONTENTZXML_RNGP_ATTRIBUTE_EMPTYZXML_RNGP_ATTRIBUTE_NOOPZXML_RNGP_CHOICE_CONTENTZXML_RNGP_CHOICE_EMPTYZXML_RNGP_CREATE_FAILUREZXML_RNGP_DATA_CONTENTZ"XML_RNGP_DEF_CHOICE_AND_INTERLEAVEZXML_RNGP_DEFINE_CREATE_FAILEDZXML_RNGP_DEFINE_EMPTYZXML_RNGP_DEFINE_MISSINGZXML_RNGP_DEFINE_NAME_MISSINGZXML_RNGP_ELEM_CONTENT_EMPTYZXML_RNGP_ELEM_CONTENT_ERRORZXML_RNGP_ELEMENT_EMPTYZXML_RNGP_ELEMENT_CONTENTZXML_RNGP_ELEMENT_NAMEZXML_RNGP_ELEMENT_NO_CONTENTZXML_RNGP_ELEM_TEXT_CONFLICTZXML_RNGP_EMPTYZXML_RNGP_EMPTY_CONSTRUCTZXML_RNGP_EMPTY_CONTENTZXML_RNGP_EMPTY_NOT_EMPTYZXML_RNGP_ERROR_TYPE_LIBZXML_RNGP_EXCEPT_EMPTYZXML_RNGP_EXCEPT_MISSINGZXML_RNGP_EXCEPT_MULTIPLEZXML_RNGP_EXCEPT_NO_CONTENTZXML_RNGP_EXTERNALREF_EMTPYZXML_RNGP_EXTERNAL_REF_FAILUREZXML_RNGP_EXTERNALREF_RECURSEZXML_RNGP_FORBIDDEN_ATTRIBUTEZXML_RNGP_FOREIGN_ELEMENTZXML_RNGP_GRAMMAR_CONTENTZXML_RNGP_GRAMMAR_EMPTYZXML_RNGP_GRAMMAR_MISSINGZXML_RNGP_GRAMMAR_NO_STARTZXML_RNGP_GROUP_ATTR_CONFLICTZXML_RNGP_HREF_ERRORZXML_RNGP_INCLUDE_EMPTYZXML_RNGP_INCLUDE_FAILUREZXML_RNGP_INCLUDE_RECURSEZXML_RNGP_INTERLEAVE_ADDZ!XML_RNGP_INTERLEAVE_CREATE_FAILEDZXML_RNGP_INTERLEAVE_EMPTYZXML_RNGP_INTERLEAVE_NO_CONTENTZXML_RNGP_INVALID_DEFINE_NAMEZXML_RNGP_INVALID_URIZXML_RNGP_INVALID_VALUEZXML_RNGP_MISSING_HREFZXML_RNGP_NAME_MISSINGZXML_RNGP_NEED_COMBINEZXML_RNGP_NOTALLOWED_NOT_EMPTYZXML_RNGP_NSNAME_ATTR_ANCESTORZXML_RNGP_NSNAME_NO_NSZXML_RNGP_PARAM_FORBIDDENZXML_RNGP_PARAM_NAME_MISSINGZ XML_RNGP_PARENTREF_CREATE_FAILEDZXML_RNGP_PARENTREF_NAME_INVALIDZXML_RNGP_PARENTREF_NO_NAMEZXML_RNGP_PARENTREF_NO_PARENTZXML_RNGP_PARENTREF_NOT_EMPTYZXML_RNGP_PARSE_ERRORZ#XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAMEZXML_RNGP_PAT_ATTR_ATTRZXML_RNGP_PAT_ATTR_ELEMZXML_RNGP_PAT_DATA_EXCEPT_ATTRZXML_RNGP_PAT_DATA_EXCEPT_ELEMZXML_RNGP_PAT_DATA_EXCEPT_EMPTYZXML_RNGP_PAT_DATA_EXCEPT_GROUPZ#XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVEZXML_RNGP_PAT_DATA_EXCEPT_LISTZ XML_RNGP_PAT_DATA_EXCEPT_ONEMOREZXML_RNGP_PAT_DATA_EXCEPT_REFZXML_RNGP_PAT_DATA_EXCEPT_TEXTZXML_RNGP_PAT_LIST_ATTRZXML_RNGP_PAT_LIST_ELEMZXML_RNGP_PAT_LIST_INTERLEAVEZXML_RNGP_PAT_LIST_LISTZXML_RNGP_PAT_LIST_REFZXML_RNGP_PAT_LIST_TEXTZ"XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAMEZ!XML_RNGP_PAT_NSNAME_EXCEPT_NSNAMEZXML_RNGP_PAT_ONEMORE_GROUP_ATTRZ$XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTRZXML_RNGP_PAT_START_ATTRZXML_RNGP_PAT_START_DATAZXML_RNGP_PAT_START_EMPTYZXML_RNGP_PAT_START_GROUPZXML_RNGP_PAT_START_INTERLEAVEZXML_RNGP_PAT_START_LISTZXML_RNGP_PAT_START_ONEMOREZXML_RNGP_PAT_START_TEXTZXML_RNGP_PAT_START_VALUEZXML_RNGP_PREFIX_UNDEFINEDZXML_RNGP_REF_CREATE_FAILEDZXML_RNGP_REF_CYCLEZXML_RNGP_REF_NAME_INVALIDZXML_RNGP_REF_NO_DEFZXML_RNGP_REF_NO_NAMEZXML_RNGP_REF_NOT_EMPTYZ$XML_RNGP_START_CHOICE_AND_INTERLEAVEZXML_RNGP_START_CONTENTZXML_RNGP_START_EMPTYZXML_RNGP_START_MISSINGZXML_RNGP_TEXT_EXPECTEDZXML_RNGP_TEXT_HAS_CHILDZXML_RNGP_TYPE_MISSINGZXML_RNGP_TYPE_NOT_FOUNDZXML_RNGP_TYPE_VALUEZXML_RNGP_UNKNOWN_ATTRIBUTEZXML_RNGP_UNKNOWN_COMBINEZXML_RNGP_UNKNOWN_CONSTRUCTZXML_RNGP_UNKNOWN_TYPE_LIBZXML_RNGP_URI_FRAGMENTZXML_RNGP_URI_NOT_ABSOLUTEZXML_RNGP_VALUE_EMPTYZXML_RNGP_VALUE_NO_CONTENTZXML_RNGP_XMLNS_NAMEZXML_RNGP_XML_NSZXML_XPATH_EXPRESSION_OKZXML_XPATH_NUMBER_ERRORZ"XML_XPATH_UNFINISHED_LITERAL_ERRORZXML_XPATH_START_LITERAL_ERRORZXML_XPATH_VARIABLE_REF_ERRORZXML_XPATH_UNDEF_VARIABLE_ERRORZ!XML_XPATH_INVALID_PREDICATE_ERRORZXML_XPATH_EXPR_ERRORZXML_XPATH_UNCLOSED_ERRORZXML_XPATH_UNKNOWN_FUNC_ERRORZXML_XPATH_INVALID_OPERANDZXML_XPATH_INVALID_TYPEZXML_XPATH_INVALID_ARITYZXML_XPATH_INVALID_CTXT_SIZEZXML_XPATH_INVALID_CTXT_POSITIONZXML_XPATH_MEMORY_ERRORZXML_XPTR_SYNTAX_ERRORZXML_XPTR_RESOURCE_ERRORZXML_XPTR_SUB_RESOURCE_ERRORZXML_XPATH_UNDEF_PREFIX_ERRORZXML_XPATH_ENCODING_ERRORZXML_XPATH_INVALID_CHAR_ERRORZXML_TREE_INVALID_HEXZXML_TREE_INVALID_DECZXML_TREE_UNTERMINATED_ENTITYZXML_TREE_NOT_UTF8ZXML_SAVE_NOT_UTF8ZXML_SAVE_CHAR_INVALIDZXML_SAVE_NO_DOCTYPEZXML_SAVE_UNKNOWN_ENCODINGZXML_REGEXP_COMPILE_ERRORZXML_IO_UNKNOWNZ XML_IO_EACCESZ XML_IO_EAGAINZ XML_IO_EBADFZXML_IO_EBADMSGZ XML_IO_EBUSYZXML_IO_ECANCELEDZ XML_IO_ECHILDZXML_IO_EDEADLKZ XML_IO_EDOMZ XML_IO_EEXISTZ XML_IO_EFAULTZ XML_IO_EFBIGZXML_IO_EINPROGRESSZ XML_IO_EINTRZ XML_IO_EINVALZ XML_IO_EIOZ XML_IO_EISDIRZ XML_IO_EMFILEZ XML_IO_EMLINKZXML_IO_EMSGSIZEZXML_IO_ENAMETOOLONGZ XML_IO_ENFILEZ XML_IO_ENODEVZ XML_IO_ENOENTZXML_IO_ENOEXECZ XML_IO_ENOLCKZ XML_IO_ENOMEMZ XML_IO_ENOSPCZ XML_IO_ENOSYSZXML_IO_ENOTDIRZXML_IO_ENOTEMPTYZXML_IO_ENOTSUPZ XML_IO_ENOTTYZ XML_IO_ENXIOZ XML_IO_EPERMZ XML_IO_EPIPEZ XML_IO_ERANGEZ XML_IO_EROFSZ XML_IO_ESPIPEZ XML_IO_ESRCHZXML_IO_ETIMEDOUTZ XML_IO_EXDEVZXML_IO_NETWORK_ATTEMPTZXML_IO_ENCODERZ XML_IO_FLUSHZ XML_IO_WRITEZXML_IO_NO_INPUTZXML_IO_BUFFER_FULLZXML_IO_LOAD_ERRORZXML_IO_ENOTSOCKZXML_IO_EISCONNZXML_IO_ECONNREFUSEDZXML_IO_ENETUNREACHZXML_IO_EADDRINUSEZXML_IO_EALREADYZXML_IO_EAFNOSUPPORTZXML_XINCLUDE_RECURSIONZXML_XINCLUDE_PARSE_VALUEZ XML_XINCLUDE_ENTITY_DEF_MISMATCHZXML_XINCLUDE_NO_HREFZXML_XINCLUDE_NO_FALLBACKZXML_XINCLUDE_HREF_URIZXML_XINCLUDE_TEXT_FRAGMENTZXML_XINCLUDE_TEXT_DOCUMENTZXML_XINCLUDE_INVALID_CHARZXML_XINCLUDE_BUILD_FAILEDZXML_XINCLUDE_UNKNOWN_ENCODINGZXML_XINCLUDE_MULTIPLE_ROOTZXML_XINCLUDE_XPTR_FAILEDZXML_XINCLUDE_XPTR_RESULTZXML_XINCLUDE_INCLUDE_IN_INCLUDEZ!XML_XINCLUDE_FALLBACKS_IN_INCLUDEZ$XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDEZXML_XINCLUDE_DEPRECATED_NSZXML_XINCLUDE_FRAGMENT_IDZXML_CATALOG_MISSING_ATTRZXML_CATALOG_ENTRY_BROKENZXML_CATALOG_PREFER_VALUEZXML_CATALOG_NOT_CATALOGZXML_CATALOG_RECURSIONZXML_SCHEMAP_PREFIX_UNDEFINEDZ!XML_SCHEMAP_ATTRFORMDEFAULT_VALUEZ XML_SCHEMAP_ATTRGRP_NONAME_NOREFZXML_SCHEMAP_ATTR_NONAME_NOREFZ$XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREFZ!XML_SCHEMAP_ELEMFORMDEFAULT_VALUEZXML_SCHEMAP_ELEM_NONAME_NOREFZXML_SCHEMAP_EXTENSION_NO_BASEZXML_SCHEMAP_FACET_NO_VALUEZXML_SCHEMAP_FAILED_BUILD_IMPORTZXML_SCHEMAP_GROUP_NONAME_NOREFZ$XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URIZ"XML_SCHEMAP_IMPORT_REDEFINE_NSNAMEZ!XML_SCHEMAP_IMPORT_SCHEMA_NOT_URIZXML_SCHEMAP_INVALID_BOOLEANZXML_SCHEMAP_INVALID_ENUMZXML_SCHEMAP_INVALID_FACETZXML_SCHEMAP_INVALID_FACET_VALUEZXML_SCHEMAP_INVALID_MAXOCCURSZXML_SCHEMAP_INVALID_MINOCCURSZ#XML_SCHEMAP_INVALID_REF_AND_SUBTYPEZXML_SCHEMAP_INVALID_WHITE_SPACEZXML_SCHEMAP_NOATTR_NOREFZXML_SCHEMAP_NOTATION_NO_NAMEZXML_SCHEMAP_NOTYPE_NOREFZXML_SCHEMAP_REF_AND_SUBTYPEZ$XML_SCHEMAP_RESTRICTION_NONAME_NOREFZXML_SCHEMAP_SIMPLETYPE_NONAMEZXML_SCHEMAP_TYPE_AND_SUBTYPEZXML_SCHEMAP_UNKNOWN_ALL_CHILDZ&XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILDZXML_SCHEMAP_UNKNOWN_ATTR_CHILDZ!XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILDZ#XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUPZXML_SCHEMAP_UNKNOWN_BASE_TYPEZ XML_SCHEMAP_UNKNOWN_CHOICE_CHILDZ(XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILDZ%XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILDZXML_SCHEMAP_UNKNOWN_ELEM_CHILDZ#XML_SCHEMAP_UNKNOWN_EXTENSION_CHILDZXML_SCHEMAP_UNKNOWN_FACET_CHILDZXML_SCHEMAP_UNKNOWN_FACET_TYPEZXML_SCHEMAP_UNKNOWN_GROUP_CHILDZ XML_SCHEMAP_UNKNOWN_IMPORT_CHILDZXML_SCHEMAP_UNKNOWN_LIST_CHILDZ"XML_SCHEMAP_UNKNOWN_NOTATION_CHILDZ(XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILDZXML_SCHEMAP_UNKNOWN_REFZ%XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILDZ!XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILDZ"XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILDZ'XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILDZ$XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILDZXML_SCHEMAP_UNKNOWN_TYPEZXML_SCHEMAP_UNKNOWN_UNION_CHILDZXML_SCHEMAP_ELEM_DEFAULT_FIXEDZXML_SCHEMAP_REGEXP_INVALIDZXML_SCHEMAP_FAILED_LOADZXML_SCHEMAP_NOTHING_TO_PARSEZXML_SCHEMAP_NOROOTZXML_SCHEMAP_REDEFINED_GROUPZXML_SCHEMAP_REDEFINED_TYPEZXML_SCHEMAP_REDEFINED_ELEMENTZXML_SCHEMAP_REDEFINED_ATTRGROUPZXML_SCHEMAP_REDEFINED_ATTRZXML_SCHEMAP_REDEFINED_NOTATIONZXML_SCHEMAP_FAILED_PARSEZXML_SCHEMAP_UNKNOWN_PREFIXZXML_SCHEMAP_DEF_AND_PREFIXZ!XML_SCHEMAP_UNKNOWN_INCLUDE_CHILDZ"XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URIZ!XML_SCHEMAP_INCLUDE_SCHEMA_NO_URIZXML_SCHEMAP_NOT_SCHEMAZXML_SCHEMAP_UNKNOWN_MEMBER_TYPEZXML_SCHEMAP_INVALID_ATTR_USEZXML_SCHEMAP_RECURSIVEZ(XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPEZ$XML_SCHEMAP_INVALID_ATTR_COMBINATIONZ+XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATIONZ$XML_SCHEMAP_MISSING_SIMPLETYPE_CHILDZXML_SCHEMAP_INVALID_ATTR_NAMEZXML_SCHEMAP_REF_AND_CONTENTZXML_SCHEMAP_CT_PROPS_CORRECT_1ZXML_SCHEMAP_CT_PROPS_CORRECT_2ZXML_SCHEMAP_CT_PROPS_CORRECT_3ZXML_SCHEMAP_CT_PROPS_CORRECT_4ZXML_SCHEMAP_CT_PROPS_CORRECT_5Z'XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1Z+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1Z+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2Z)XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2Z'XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3Z&XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBERZ(XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLEZ!XML_SCHEMAP_UNION_NOT_EXPRESSIBLEZXML_SCHEMAP_SRC_IMPORT_3_1ZXML_SCHEMAP_SRC_IMPORT_3_2Z)XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1Z)XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2Z)XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3ZXML_SCHEMAP_COS_CT_EXTENDS_1_3ZXML_SCHEMAV_NOROOTZXML_SCHEMAV_UNDECLAREDELEMZXML_SCHEMAV_NOTTOPLEVELZXML_SCHEMAV_MISSINGZXML_SCHEMAV_WRONGELEMZXML_SCHEMAV_NOTYPEZXML_SCHEMAV_NOROLLBACKZXML_SCHEMAV_ISABSTRACTZXML_SCHEMAV_NOTEMPTYZXML_SCHEMAV_ELEMCONTZXML_SCHEMAV_HAVEDEFAULTZXML_SCHEMAV_NOTNILLABLEZXML_SCHEMAV_EXTRACONTENTZXML_SCHEMAV_INVALIDATTRZXML_SCHEMAV_INVALIDELEMZXML_SCHEMAV_NOTDETERMINISTZXML_SCHEMAV_CONSTRUCTZXML_SCHEMAV_INTERNALZXML_SCHEMAV_NOTSIMPLEZXML_SCHEMAV_ATTRUNKNOWNZXML_SCHEMAV_ATTRINVALIDZXML_SCHEMAV_VALUEZXML_SCHEMAV_FACETZ$XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1Z$XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2Z$XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3ZXML_SCHEMAV_CVC_TYPE_3_1_1ZXML_SCHEMAV_CVC_TYPE_3_1_2ZXML_SCHEMAV_CVC_FACET_VALIDZXML_SCHEMAV_CVC_LENGTH_VALIDZXML_SCHEMAV_CVC_MINLENGTH_VALIDZXML_SCHEMAV_CVC_MAXLENGTH_VALIDZ"XML_SCHEMAV_CVC_MININCLUSIVE_VALIDZ"XML_SCHEMAV_CVC_MAXINCLUSIVE_VALIDZ"XML_SCHEMAV_CVC_MINEXCLUSIVE_VALIDZ"XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALIDZ!XML_SCHEMAV_CVC_TOTALDIGITS_VALIDZ$XML_SCHEMAV_CVC_FRACTIONDIGITS_VALIDZXML_SCHEMAV_CVC_PATTERN_VALIDZ!XML_SCHEMAV_CVC_ENUMERATION_VALIDZ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1Z XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2Z XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3Z XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4ZXML_SCHEMAV_CVC_ELT_1ZXML_SCHEMAV_CVC_ELT_2ZXML_SCHEMAV_CVC_ELT_3_1ZXML_SCHEMAV_CVC_ELT_3_2_1ZXML_SCHEMAV_CVC_ELT_3_2_2ZXML_SCHEMAV_CVC_ELT_4_1ZXML_SCHEMAV_CVC_ELT_4_2ZXML_SCHEMAV_CVC_ELT_4_3ZXML_SCHEMAV_CVC_ELT_5_1_1ZXML_SCHEMAV_CVC_ELT_5_1_2ZXML_SCHEMAV_CVC_ELT_5_2_1ZXML_SCHEMAV_CVC_ELT_5_2_2_1ZXML_SCHEMAV_CVC_ELT_5_2_2_2_1ZXML_SCHEMAV_CVC_ELT_5_2_2_2_2ZXML_SCHEMAV_CVC_ELT_6ZXML_SCHEMAV_CVC_ELT_7ZXML_SCHEMAV_CVC_ATTRIBUTE_1ZXML_SCHEMAV_CVC_ATTRIBUTE_2ZXML_SCHEMAV_CVC_ATTRIBUTE_3ZXML_SCHEMAV_CVC_ATTRIBUTE_4Z XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1Z"XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1Z"XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2ZXML_SCHEMAV_CVC_COMPLEX_TYPE_4Z XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1Z XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2ZXML_SCHEMAV_ELEMENT_CONTENTZ$XML_SCHEMAV_DOCUMENT_ELEMENT_MISSINGZXML_SCHEMAV_CVC_COMPLEX_TYPE_1ZXML_SCHEMAV_CVC_AUZXML_SCHEMAV_CVC_TYPE_1ZXML_SCHEMAV_CVC_TYPE_2ZXML_SCHEMAV_CVC_IDCZXML_SCHEMAV_CVC_WILDCARDZXML_SCHEMAV_MISCZXML_XPTR_UNKNOWN_SCHEMEZXML_XPTR_CHILDSEQ_STARTZXML_XPTR_EVAL_FAILEDZXML_XPTR_EXTRA_OBJECTSZXML_C14N_CREATE_CTXTZXML_C14N_REQUIRES_UTF8ZXML_C14N_CREATE_STACKZXML_C14N_INVALID_NODEZXML_C14N_UNKNOW_NODEZXML_C14N_RELATIVE_NAMESPACEZXML_FTP_PASV_ANSWERZXML_FTP_EPSV_ANSWERZ XML_FTP_ACCNTZXML_FTP_URL_SYNTAXZXML_HTTP_URL_SYNTAXZXML_HTTP_USE_IPZXML_HTTP_UNKNOWN_HOSTZXML_SCHEMAP_SRC_SIMPLE_TYPE_1ZXML_SCHEMAP_SRC_SIMPLE_TYPE_2ZXML_SCHEMAP_SRC_SIMPLE_TYPE_3ZXML_SCHEMAP_SRC_SIMPLE_TYPE_4ZXML_SCHEMAP_SRC_RESOLVEZ.XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPEZ+XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPEZ0XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPESZXML_SCHEMAP_ST_PROPS_CORRECT_1ZXML_SCHEMAP_ST_PROPS_CORRECT_2ZXML_SCHEMAP_ST_PROPS_CORRECT_3Z XML_SCHEMAP_COS_ST_RESTRICTS_1_1Z XML_SCHEMAP_COS_ST_RESTRICTS_1_2Z"XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1Z"XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2Z XML_SCHEMAP_COS_ST_RESTRICTS_2_1Z$XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1Z$XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2Z$XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1Z$XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2Z$XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3Z$XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4Z$XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5Z XML_SCHEMAP_COS_ST_RESTRICTS_3_1Z"XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1Z$XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2Z$XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2Z$XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1Z$XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3Z$XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4Z$XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5Z!XML_SCHEMAP_COS_ST_DERIVED_OK_2_1Z!XML_SCHEMAP_COS_ST_DERIVED_OK_2_2Z XML_SCHEMAP_S4S_ELEM_NOT_ALLOWEDZXML_SCHEMAP_S4S_ELEM_MISSINGZ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWEDZXML_SCHEMAP_S4S_ATTR_MISSINGZ"XML_SCHEMAP_S4S_ATTR_INVALID_VALUEZXML_SCHEMAP_SRC_ELEMENT_1ZXML_SCHEMAP_SRC_ELEMENT_2_1ZXML_SCHEMAP_SRC_ELEMENT_2_2ZXML_SCHEMAP_SRC_ELEMENT_3ZXML_SCHEMAP_P_PROPS_CORRECT_1ZXML_SCHEMAP_P_PROPS_CORRECT_2_1ZXML_SCHEMAP_P_PROPS_CORRECT_2_2ZXML_SCHEMAP_E_PROPS_CORRECT_2ZXML_SCHEMAP_E_PROPS_CORRECT_3ZXML_SCHEMAP_E_PROPS_CORRECT_4ZXML_SCHEMAP_E_PROPS_CORRECT_5ZXML_SCHEMAP_E_PROPS_CORRECT_6ZXML_SCHEMAP_SRC_INCLUDEZXML_SCHEMAP_SRC_ATTRIBUTE_1ZXML_SCHEMAP_SRC_ATTRIBUTE_2ZXML_SCHEMAP_SRC_ATTRIBUTE_3_1ZXML_SCHEMAP_SRC_ATTRIBUTE_3_2ZXML_SCHEMAP_SRC_ATTRIBUTE_4ZXML_SCHEMAP_NO_XMLNSZXML_SCHEMAP_NO_XSIZXML_SCHEMAP_COS_VALID_DEFAULT_1Z!XML_SCHEMAP_COS_VALID_DEFAULT_2_1Z#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1Z#XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2ZXML_SCHEMAP_CVC_SIMPLE_TYPEZXML_SCHEMAP_COS_CT_EXTENDS_1_1ZXML_SCHEMAP_SRC_IMPORT_1_1ZXML_SCHEMAP_SRC_IMPORT_1_2ZXML_SCHEMAP_SRC_IMPORT_2ZXML_SCHEMAP_SRC_IMPORT_2_1ZXML_SCHEMAP_SRC_IMPORT_2_2ZXML_SCHEMAP_INTERNALZXML_SCHEMAP_NOT_DETERMINISTICZ!XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1Z!XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2Z!XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3ZXML_SCHEMAP_MG_PROPS_CORRECT_1ZXML_SCHEMAP_MG_PROPS_CORRECT_2ZXML_SCHEMAP_SRC_CT_1Z+XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3ZXML_SCHEMAP_AU_PROPS_CORRECT_2ZXML_SCHEMAP_A_PROPS_CORRECT_2ZXML_SCHEMAP_C_PROPS_CORRECTZXML_SCHEMAP_SRC_REDEFINEZXML_SCHEMAP_SRC_IMPORTZXML_SCHEMAP_WARN_SKIP_SCHEMAZ!XML_SCHEMAP_WARN_UNLOCATED_SCHEMAZ!XML_SCHEMAP_WARN_ATTR_REDECL_PROHZ$XML_SCHEMAP_WARN_ATTR_POINTLESS_PROHZXML_SCHEMAP_AG_PROPS_CORRECTZXML_SCHEMAP_COS_CT_EXTENDS_1_2ZXML_SCHEMAP_AU_PROPS_CORRECTZXML_SCHEMAP_A_PROPS_CORRECT_3ZXML_SCHEMAP_COS_ALL_LIMITEDZXML_SCHEMATRONV_ASSERTZXML_SCHEMATRONV_REPORTZXML_MODULE_OPENZXML_MODULE_CLOSEZXML_CHECK_FOUND_ELEMENTZXML_CHECK_FOUND_ATTRIBUTEZXML_CHECK_FOUND_TEXTZXML_CHECK_FOUND_CDATAZXML_CHECK_FOUND_ENTITYREFZXML_CHECK_FOUND_ENTITYZXML_CHECK_FOUND_PIZXML_CHECK_FOUND_COMMENTZXML_CHECK_FOUND_DOCTYPEZXML_CHECK_FOUND_FRAGMENTZXML_CHECK_FOUND_NOTATIONZXML_CHECK_UNKNOWN_NODEZXML_CHECK_ENTITY_TYPEZXML_CHECK_NO_PARENTZXML_CHECK_NO_DOCZXML_CHECK_NO_NAMEZXML_CHECK_NO_ELEMZXML_CHECK_WRONG_DOCZXML_CHECK_NO_PREVZXML_CHECK_WRONG_PREVZXML_CHECK_NO_NEXTZXML_CHECK_WRONG_NEXTZXML_CHECK_NOT_DTDZXML_CHECK_NOT_ATTRZXML_CHECK_NOT_ATTR_DECLZXML_CHECK_NOT_ELEM_DECLZXML_CHECK_NOT_ENTITY_DECLZXML_CHECK_NOT_NS_DECLZXML_CHECK_NO_HREFZXML_CHECK_WRONG_PARENTZXML_CHECK_NS_SCOPEZXML_CHECK_NS_ANCESTORZXML_CHECK_NOT_UTF8ZXML_CHECK_NO_DICTZXML_CHECK_NOT_NCNAMEZXML_CHECK_OUTSIDE_DICTZXML_CHECK_WRONG_NAMEZXML_CHECK_NAME_NOT_NULLZXML_I18N_NO_NAMEZXML_I18N_NO_HANDLERZXML_I18N_EXCESS_HANDLERZXML_I18N_CONV_FAILEDZXML_I18N_NO_OUTPUTZXML_BUF_OVERFLOWZ XML_C14N_1_0ZXML_C14N_EXCLUSIVE_1_0Z XML_C14N_1_1ZXML_CATA_ALLOW_NONEZXML_CATA_ALLOW_GLOBALZXML_CATA_ALLOW_DOCUMENTZXML_CATA_ALLOW_ALLZXML_CATA_PREFER_NONEZXML_CATA_PREFER_PUBLICZXML_CATA_PREFER_SYSTEMZXML_CHAR_ENCODING_ERRORZXML_CHAR_ENCODING_NONEZXML_CHAR_ENCODING_UTF8ZXML_CHAR_ENCODING_UTF16LEZXML_CHAR_ENCODING_UTF16BEZXML_CHAR_ENCODING_UCS4LEZXML_CHAR_ENCODING_UCS4BEZXML_CHAR_ENCODING_EBCDICZXML_CHAR_ENCODING_UCS4_2143ZXML_CHAR_ENCODING_UCS4_3412ZXML_CHAR_ENCODING_UCS2ZXML_CHAR_ENCODING_8859_1ZXML_CHAR_ENCODING_8859_2ZXML_CHAR_ENCODING_8859_3ZXML_CHAR_ENCODING_8859_4ZXML_CHAR_ENCODING_8859_5ZXML_CHAR_ENCODING_8859_6ZXML_CHAR_ENCODING_8859_7ZXML_CHAR_ENCODING_8859_8ZXML_CHAR_ENCODING_8859_9ZXML_CHAR_ENCODING_2022_JPZXML_CHAR_ENCODING_SHIFT_JISZXML_CHAR_ENCODING_EUC_JPZXML_CHAR_ENCODING_ASCIIZXML_DOC_WELLFORMEDZXML_DOC_NSVALIDZ XML_DOC_OLD10ZXML_DOC_DTDVALIDZXML_DOC_XINCLUDEZXML_DOC_USERBUILTZXML_DOC_INTERNALZ XML_DOC_HTMLZXML_ELEMENT_CONTENT_PCDATAZXML_ELEMENT_CONTENT_ELEMENTZXML_ELEMENT_CONTENT_SEQZXML_ELEMENT_CONTENT_ORZXML_ELEMENT_CONTENT_ONCEZXML_ELEMENT_CONTENT_OPTZXML_ELEMENT_CONTENT_MULTZXML_ELEMENT_CONTENT_PLUSZXML_ELEMENT_TYPE_UNDEFINEDZXML_ELEMENT_TYPE_EMPTYZXML_ELEMENT_TYPE_ANYZXML_ELEMENT_TYPE_MIXEDZXML_ELEMENT_TYPE_ELEMENTZ XML_ERR_NONEZXML_ERR_WARNINGZ XML_ERR_ERRORZ XML_ERR_FATALZ XML_EXP_EMPTYZXML_EXP_FORBIDZ XML_EXP_ATOMZ XML_EXP_SEQZ XML_EXP_ORZ XML_EXP_COUNTZXML_INTERNAL_GENERAL_ENTITYZ"XML_EXTERNAL_GENERAL_PARSED_ENTITYZ$XML_EXTERNAL_GENERAL_UNPARSED_ENTITYZXML_INTERNAL_PARAMETER_ENTITYZXML_EXTERNAL_PARAMETER_ENTITYZXML_INTERNAL_PREDEFINED_ENTITYZ XML_FROM_NONEZXML_FROM_PARSERZ XML_FROM_TREEZXML_FROM_NAMESPACEZ XML_FROM_DTDZ XML_FROM_HTMLZXML_FROM_MEMORYZXML_FROM_OUTPUTZ XML_FROM_IOZ XML_FROM_FTPZ XML_FROM_HTTPZXML_FROM_XINCLUDEZXML_FROM_XPATHZXML_FROM_XPOINTERZXML_FROM_REGEXPZXML_FROM_DATATYPEZXML_FROM_SCHEMASPZXML_FROM_SCHEMASVZXML_FROM_RELAXNGPZXML_FROM_RELAXNGVZXML_FROM_CATALOGZ XML_FROM_C14NZ XML_FROM_XSLTZXML_FROM_VALIDZXML_FROM_CHECKZXML_FROM_WRITERZXML_FROM_MODULEZ XML_FROM_I18NZXML_FROM_SCHEMATRONVZXML_FROM_BUFFERZ XML_FROM_URIZXML_MODULE_LAZYZXML_MODULE_LOCALZXML_PARSER_EOFZXML_PARSER_STARTZXML_PARSER_MISCZ XML_PARSER_PIZXML_PARSER_DTDZXML_PARSER_PROLOGZXML_PARSER_COMMENTZXML_PARSER_START_TAGZXML_PARSER_CONTENTZXML_PARSER_CDATA_SECTIONZXML_PARSER_END_TAGZXML_PARSER_ENTITY_DECLZXML_PARSER_ENTITY_VALUEZXML_PARSER_ATTRIBUTE_VALUEZXML_PARSER_SYSTEM_LITERALZXML_PARSER_EPILOGZXML_PARSER_IGNOREZXML_PARSER_PUBLIC_LITERALZXML_PARSER_LOADDTDZXML_PARSER_DEFAULTATTRSZXML_PARSER_VALIDATEZXML_PARSER_SUBST_ENTITIESZ$XML_PARSER_SEVERITY_VALIDITY_WARNINGZ"XML_PARSER_SEVERITY_VALIDITY_ERRORZXML_PARSER_SEVERITY_WARNINGZXML_PARSER_SEVERITY_ERRORZXML_PARSE_RECOVERZXML_PARSE_NOENTZXML_PARSE_DTDLOADZXML_PARSE_DTDATTRZXML_PARSE_DTDVALIDZXML_PARSE_NOERRORZXML_PARSE_NOWARNINGZXML_PARSE_PEDANTICZXML_PARSE_NOBLANKSZXML_PARSE_SAX1ZXML_PARSE_XINCLUDEZXML_PARSE_NONETZXML_PARSE_NODICTZXML_PARSE_NSCLEANZXML_PARSE_NOCDATAZXML_PARSE_NOXINCNODEZXML_PARSE_COMPACTZXML_PARSE_OLD10ZXML_PARSE_NOBASEFIXZXML_PARSE_HUGEZXML_PARSE_OLDSAXZXML_PARSE_IGNORE_ENCZXML_PARSE_BIG_LINESZXML_PARSE_UNKNOWNZ XML_PARSE_DOMZ XML_PARSE_SAXZXML_PARSE_PUSH_DOMZXML_PARSE_PUSH_SAXZXML_PARSE_READERZXML_PATTERN_DEFAULTZXML_PATTERN_XPATHZXML_PATTERN_XSSELZXML_PATTERN_XSFIELDZXML_READER_TYPE_NONEZXML_READER_TYPE_ELEMENTZXML_READER_TYPE_ATTRIBUTEZXML_READER_TYPE_TEXTZXML_READER_TYPE_CDATAZ XML_READER_TYPE_ENTITY_REFERENCEZXML_READER_TYPE_ENTITYZ&XML_READER_TYPE_PROCESSING_INSTRUCTIONZXML_READER_TYPE_COMMENTZXML_READER_TYPE_DOCUMENTZXML_READER_TYPE_DOCUMENT_TYPEZ!XML_READER_TYPE_DOCUMENT_FRAGMENTZXML_READER_TYPE_NOTATIONZXML_READER_TYPE_WHITESPACEZ&XML_READER_TYPE_SIGNIFICANT_WHITESPACEZXML_READER_TYPE_END_ELEMENTZXML_READER_TYPE_END_ENTITYZXML_READER_TYPE_XML_DECLARATIONZXML_RELAXNGP_NONEZXML_RELAXNGP_FREE_DOCZXML_RELAXNGP_CRNGZXML_RELAXNG_OKZXML_RELAXNG_ERR_MEMORYZXML_RELAXNG_ERR_TYPEZXML_RELAXNG_ERR_TYPEVALZXML_RELAXNG_ERR_DUPIDZXML_RELAXNG_ERR_TYPECMPZXML_RELAXNG_ERR_NOSTATEZXML_RELAXNG_ERR_NODEFINEZXML_RELAXNG_ERR_LISTEXTRAZXML_RELAXNG_ERR_LISTEMPTYZXML_RELAXNG_ERR_INTERNODATAZXML_RELAXNG_ERR_INTERSEQZXML_RELAXNG_ERR_INTEREXTRAZXML_RELAXNG_ERR_ELEMNAMEZXML_RELAXNG_ERR_ATTRNAMEZXML_RELAXNG_ERR_ELEMNONSZXML_RELAXNG_ERR_ATTRNONSZXML_RELAXNG_ERR_ELEMWRONGNSZXML_RELAXNG_ERR_ATTRWRONGNSZXML_RELAXNG_ERR_ELEMEXTRANSZXML_RELAXNG_ERR_ATTREXTRANSZXML_RELAXNG_ERR_ELEMNOTEMPTYZXML_RELAXNG_ERR_NOELEMZXML_RELAXNG_ERR_NOTELEMZXML_RELAXNG_ERR_ATTRVALIDZXML_RELAXNG_ERR_CONTENTVALIDZXML_RELAXNG_ERR_EXTRACONTENTZXML_RELAXNG_ERR_INVALIDATTRZXML_RELAXNG_ERR_DATAELEMZXML_RELAXNG_ERR_VALELEMZXML_RELAXNG_ERR_LISTELEMZXML_RELAXNG_ERR_DATATYPEZXML_RELAXNG_ERR_VALUEZXML_RELAXNG_ERR_LISTZXML_RELAXNG_ERR_NOGRAMMARZXML_RELAXNG_ERR_EXTRADATAZXML_RELAXNG_ERR_LACKDATAZXML_RELAXNG_ERR_INTERNALZXML_RELAXNG_ERR_ELEMWRONGZXML_RELAXNG_ERR_TEXTWRONGZXML_SAVE_FORMATZXML_SAVE_NO_DECLZXML_SAVE_NO_EMPTYZXML_SAVE_NO_XHTMLZXML_SAVE_XHTMLZXML_SAVE_AS_XMLZXML_SAVE_AS_HTMLZXML_SAVE_WSNONSIGZXML_SCHEMAS_UNKNOWNZXML_SCHEMAS_STRINGZXML_SCHEMAS_NORMSTRINGZXML_SCHEMAS_DECIMALZXML_SCHEMAS_TIMEZXML_SCHEMAS_GDAYZXML_SCHEMAS_GMONTHZXML_SCHEMAS_GMONTHDAYZXML_SCHEMAS_GYEARZXML_SCHEMAS_GYEARMONTHZXML_SCHEMAS_DATEZXML_SCHEMAS_DATETIMEZXML_SCHEMAS_DURATIONZXML_SCHEMAS_FLOATZXML_SCHEMAS_DOUBLEZXML_SCHEMAS_BOOLEANZXML_SCHEMAS_TOKENZXML_SCHEMAS_LANGUAGEZXML_SCHEMAS_NMTOKENZXML_SCHEMAS_NMTOKENSZXML_SCHEMAS_NAMEZXML_SCHEMAS_QNAMEZXML_SCHEMAS_NCNAMEZXML_SCHEMAS_IDZXML_SCHEMAS_IDREFZXML_SCHEMAS_IDREFSZXML_SCHEMAS_ENTITYZXML_SCHEMAS_ENTITIESZXML_SCHEMAS_NOTATIONZXML_SCHEMAS_ANYURIZXML_SCHEMAS_INTEGERZXML_SCHEMAS_NPINTEGERZXML_SCHEMAS_NINTEGERZXML_SCHEMAS_NNINTEGERZXML_SCHEMAS_PINTEGERZXML_SCHEMAS_INTZXML_SCHEMAS_UINTZXML_SCHEMAS_LONGZXML_SCHEMAS_ULONGZXML_SCHEMAS_SHORTZXML_SCHEMAS_USHORTZXML_SCHEMAS_BYTEZXML_SCHEMAS_UBYTEZXML_SCHEMAS_HEXBINARYZXML_SCHEMAS_BASE64BINARYZXML_SCHEMAS_ANYTYPEZXML_SCHEMAS_ANYSIMPLETYPEZXML_SCHEMAS_ERR_OKZXML_SCHEMAS_ERR_NOROOTZXML_SCHEMAS_ERR_UNDECLAREDELEMZXML_SCHEMAS_ERR_NOTTOPLEVELZXML_SCHEMAS_ERR_MISSINGZXML_SCHEMAS_ERR_WRONGELEMZXML_SCHEMAS_ERR_NOTYPEZXML_SCHEMAS_ERR_NOROLLBACKZXML_SCHEMAS_ERR_ISABSTRACTZXML_SCHEMAS_ERR_NOTEMPTYZXML_SCHEMAS_ERR_ELEMCONTZXML_SCHEMAS_ERR_HAVEDEFAULTZXML_SCHEMAS_ERR_NOTNILLABLEZXML_SCHEMAS_ERR_EXTRACONTENTZXML_SCHEMAS_ERR_INVALIDATTRZXML_SCHEMAS_ERR_INVALIDELEMZXML_SCHEMAS_ERR_NOTDETERMINISTZXML_SCHEMAS_ERR_CONSTRUCTZXML_SCHEMAS_ERR_INTERNALZXML_SCHEMAS_ERR_NOTSIMPLEZXML_SCHEMAS_ERR_ATTRUNKNOWNZXML_SCHEMAS_ERR_ATTRINVALIDZXML_SCHEMAS_ERR_VALUEZXML_SCHEMAS_ERR_FACETZXML_SCHEMAS_ERR_ZXML_SCHEMAS_ERR_XXXZXML_SCHEMATRON_OUT_QUIETZXML_SCHEMATRON_OUT_TEXTZXML_SCHEMATRON_OUT_XMLZXML_SCHEMATRON_OUT_ERRORZXML_SCHEMATRON_OUT_FILEZXML_SCHEMATRON_OUT_BUFFERZXML_SCHEMATRON_OUT_IOZXML_SCHEMA_CONTENT_UNKNOWNZXML_SCHEMA_CONTENT_EMPTYZXML_SCHEMA_CONTENT_ELEMENTSZXML_SCHEMA_CONTENT_MIXEDZXML_SCHEMA_CONTENT_SIMPLEZ$XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTSZXML_SCHEMA_CONTENT_BASICZXML_SCHEMA_CONTENT_ANYZXML_SCHEMA_TYPE_BASICZXML_SCHEMA_TYPE_ANYZXML_SCHEMA_TYPE_FACETZXML_SCHEMA_TYPE_SIMPLEZXML_SCHEMA_TYPE_COMPLEXZXML_SCHEMA_TYPE_SEQUENCEZXML_SCHEMA_TYPE_CHOICEZXML_SCHEMA_TYPE_ALLZXML_SCHEMA_TYPE_SIMPLE_CONTENTZXML_SCHEMA_TYPE_COMPLEX_CONTENTZXML_SCHEMA_TYPE_URZXML_SCHEMA_TYPE_RESTRICTIONZXML_SCHEMA_TYPE_EXTENSIONZXML_SCHEMA_TYPE_ELEMENTZXML_SCHEMA_TYPE_ATTRIBUTEZXML_SCHEMA_TYPE_ATTRIBUTEGROUPZXML_SCHEMA_TYPE_GROUPZXML_SCHEMA_TYPE_NOTATIONZXML_SCHEMA_TYPE_LISTZXML_SCHEMA_TYPE_UNIONZXML_SCHEMA_TYPE_ANY_ATTRIBUTEZXML_SCHEMA_TYPE_IDC_UNIQUEZXML_SCHEMA_TYPE_IDC_KEYZXML_SCHEMA_TYPE_IDC_KEYREFZXML_SCHEMA_TYPE_PARTICLEZXML_SCHEMA_TYPE_ATTRIBUTE_USEZXML_SCHEMA_FACET_MININCLUSIVEZXML_SCHEMA_FACET_MINEXCLUSIVEZXML_SCHEMA_FACET_MAXINCLUSIVEZXML_SCHEMA_FACET_MAXEXCLUSIVEZXML_SCHEMA_FACET_TOTALDIGITSZXML_SCHEMA_FACET_FRACTIONDIGITSZXML_SCHEMA_FACET_PATTERNZXML_SCHEMA_FACET_ENUMERATIONZXML_SCHEMA_FACET_WHITESPACEZXML_SCHEMA_FACET_LENGTHZXML_SCHEMA_FACET_MAXLENGTHZXML_SCHEMA_FACET_MINLENGTHZXML_SCHEMA_EXTRA_QNAMEREFZ XML_SCHEMA_EXTRA_ATTR_USE_PROHIBZXML_SCHEMA_VAL_VC_I_CREATEZXML_SCHEMA_WHITESPACE_UNKNOWNZXML_SCHEMA_WHITESPACE_PRESERVEZXML_SCHEMA_WHITESPACE_REPLACEZXML_SCHEMA_WHITESPACE_COLLAPSEZXML_TEXTREADER_MODE_INITIALZXML_TEXTREADER_MODE_INTERACTIVEZXML_TEXTREADER_MODE_ERRORZXML_TEXTREADER_MODE_EOFZXML_TEXTREADER_MODE_CLOSEDZXML_TEXTREADER_MODE_READINGZXML_WITH_THREADZ XML_WITH_TREEZXML_WITH_OUTPUTZ XML_WITH_PUSHZXML_WITH_READERZXML_WITH_PATTERNZXML_WITH_WRITERZ XML_WITH_SAX1Z XML_WITH_FTPZ XML_WITH_HTTPZXML_WITH_VALIDZ XML_WITH_HTMLZXML_WITH_LEGACYZ XML_WITH_C14NZXML_WITH_CATALOGZXML_WITH_XPATHZ XML_WITH_XPTRZXML_WITH_XINCLUDEZXML_WITH_ICONVZXML_WITH_ISO8859XZXML_WITH_UNICODEZXML_WITH_REGEXPZXML_WITH_AUTOMATAZ XML_WITH_EXPRZXML_WITH_SCHEMASZXML_WITH_SCHEMATRONZXML_WITH_MODULESZXML_WITH_DEBUGZXML_WITH_DEBUG_MEMZXML_WITH_DEBUG_RUNZ XML_WITH_ZLIBZ XML_WITH_ICUZ XML_WITH_LZMAZ XML_WITH_NONEZXPATH_UNDEFINEDZ XPATH_NODESETZ XPATH_BOOLEANZ XPATH_NUMBERZ XPATH_STRINGZ XPATH_POINTZ XPATH_RANGEZXPATH_LOCATIONSETZ XPATH_USERSZXPATH_XSLT_TREEZXPATH_EXPRESSION_OKZXPATH_NUMBER_ERRORZXPATH_UNFINISHED_LITERAL_ERRORZXPATH_START_LITERAL_ERRORZXPATH_VARIABLE_REF_ERRORZXPATH_UNDEF_VARIABLE_ERRORZXPATH_INVALID_PREDICATE_ERRORZXPATH_EXPR_ERRORZXPATH_UNCLOSED_ERRORZXPATH_UNKNOWN_FUNC_ERRORZXPATH_INVALID_OPERANDZXPATH_INVALID_TYPEZXPATH_INVALID_ARITYZXPATH_INVALID_CTXT_SIZEZXPATH_INVALID_CTXT_POSITIONZXPATH_MEMORY_ERRORZXPTR_SYNTAX_ERRORZXPTR_RESOURCE_ERRORZXPTR_SUB_RESOURCE_ERRORZXPATH_UNDEF_PREFIX_ERRORZXPATH_ENCODING_ERRORZXPATH_INVALID_CHAR_ERRORZXPATH_INVALID_CTXTZXPATH_STACK_ERRORZXPATH_FORBID_VARIABLE_ERRORZXPATH_OP_LIMIT_EXCEEDEDZXPATH_RECURSION_LIMIT_EXCEEDEDrrrrsD   +/i   #                "                                                                                                       99N <B 3-b:.F*M;z0%E