XML dump API.

Data Structures

struct  cr_XmlStruct

Defines

#define CR_XML_COMMON_NS   "http://linux.duke.edu/metadata/common"
#define CR_XML_FILELISTS_NS   "http://linux.duke.edu/metadata/filelists"
#define CR_XML_OTHER_NS   "http://linux.duke.edu/metadata/other"
#define CR_XML_REPOMD_NS   "http://linux.duke.edu/metadata/repo"
#define CR_XML_RPM_NS   "http://linux.duke.edu/metadata/rpm"

Functions

void cr_xml_dump_init ()
void cr_xml_dump_cleanup ()
char * cr_xml_dump_primary (cr_Package *package, GError **err)
char * cr_xml_dump_filelists (cr_Package *package, GError **err)
char * cr_xml_dump_other (cr_Package *package, GError **err)
struct cr_XmlStruct cr_xml_dump (cr_Package *package, GError **err)
char * cr_xml_dump_repomd (cr_Repomd *repomd, GError **err)
void cr_latin1_to_utf8 (const unsigned char *in, unsigned char *out) __attribute__((hot))
gboolean hascontrollchars (const unsigned char *str)

Detailed Description

Example:

 cr_Package *pkg;
 struct cr_XmlStruct xml;

 cr_xml_dump_init();
 cr_package_parser_init();

 pkg = cr_package_from_rpm_base("path/to/rpm.rpm", 5, CR_HDRR_NONE, NULL);

 xml = cr_xml_dump(pkg, NULL);

 cr_package_free(pkg);

 printf("Primary XML chunk:\n%s\n", xml.primary);
 printf("Filelists XML chunk:\n%s\n", xml.filelists);
 printf("Other XML chunk:\n%s\n", xml.other);

 free(xml.primary);
 free(xml.filelists);
 free(xml.other);

 cr_package_parser_cleanup();
 cr_xml_dump_cleanup();

Define Documentation

#define CR_XML_COMMON_NS   "http://linux.duke.edu/metadata/common"

Default namespace for primary.xml

Definition at line 63 of file xml_dump.h.

#define CR_XML_FILELISTS_NS   "http://linux.duke.edu/metadata/filelists"

Default namespace for filelists.xml

Definition at line 65 of file xml_dump.h.

#define CR_XML_OTHER_NS   "http://linux.duke.edu/metadata/other"

Default namespace for other.xml

Definition at line 67 of file xml_dump.h.

#define CR_XML_REPOMD_NS   "http://linux.duke.edu/metadata/repo"

Default namespace for repomd.xml

Definition at line 69 of file xml_dump.h.

#define CR_XML_RPM_NS   "http://linux.duke.edu/metadata/rpm"

Namespace for rpm (used in primary.xml and repomd.xml)

Definition at line 71 of file xml_dump.h.


Function Documentation

void cr_latin1_to_utf8 ( const unsigned char *  in,
unsigned char *  out 
)

Prepare string to xml dump. If string is not utf8 it is converted (source encoding is supposed to be iso-8859-1). Control chars (chars with value <32 except 9, 10 and 13) are excluded.

Parameters:
in input string.
out output string. space of output string must be at least (strlen(in) * 2 + 1) * sizeof(char)
struct cr_XmlStruct cr_xml_dump ( cr_Package package,
GError **  err 
) [read]

Generate all three xml chunks (primary, filelists, other) from cr_Package.

Parameters:
package cr_Package
err **GError
Returns:
cr_XmlStruct
void cr_xml_dump_cleanup (  ) 

Cleanup initialized dumping part of library

char* cr_xml_dump_filelists ( cr_Package package,
GError **  err 
)

Generate filelists xml chunk from cr_Package.

Parameters:
package cr_Package
err **GError
Returns:
xml chunk string or NULL on error
void cr_xml_dump_init (  ) 

Initialize dumping part of library (Initialize libxml2).

char* cr_xml_dump_other ( cr_Package package,
GError **  err 
)

Generate other xml chunk from cr_Package.

Parameters:
package cr_Package
err **GError
Returns:
xml chunk string or NULL on error
char* cr_xml_dump_primary ( cr_Package package,
GError **  err 
)

Generate primary xml chunk from cr_Package.

Parameters:
package cr_Package
err **GError
Returns:
xml chunk string or NULL on error
char* cr_xml_dump_repomd ( cr_Repomd repomd,
GError **  err 
)

Generate xml representation of cr_Repomd.

Parameters:
repomd cr_Repomd
err **GError
Returns:
repomd.xml content
gboolean hascontrollchars ( const unsigned char *  str  ) 

Check if string contains chars with value <32 (except 9, 10 and 13).

Parameters:
str String (NOT NULL!!!!)
Returns:
TRUE if at leas one char with value <32 (except the 9, 10, 13) is present in the string.

Generated on 22 Oct 2014 for createrepo_c library by  doxygen 1.6.1