MCPcopy Create free account
hub / github.com/Kitware/VTK / xmlDumpXMLCatalogNode

Function xmlDumpXMLCatalogNode

ThirdParty/libxml2/vtklibxml2/catalog.c:513–628  ·  view source on GitHub ↗

* xmlDumpXMLCatalogNode: * @catal: top catalog entry * @catalog: pointer to the xml tree * @doc: the containing document * @ns: the current namespace * @cgroup: group node for group members * * Serializes a Catalog entry, called by xmlDumpXMLCatalog and recursively * for group entries */

Source from the content-addressed store, hash-verified

511 * for group entries
512 */
513static void xmlDumpXMLCatalogNode(xmlCatalogEntryPtr catal, xmlNodePtr catalog,
514 xmlDocPtr doc, xmlNsPtr ns, xmlCatalogEntryPtr cgroup) {
515 xmlNodePtr node;
516 xmlCatalogEntryPtr cur;
517 /*
518 * add all the catalog entries
519 */
520 cur = catal;
521 while (cur != NULL) {
522 if (cur->group == cgroup) {
523 switch (cur->type) {
524 case XML_CATA_REMOVED:
525 break;
526 case XML_CATA_BROKEN_CATALOG:
527 case XML_CATA_CATALOG:
528 if (cur == catal) {
529 cur = cur->children;
530 continue;
531 }
532 break;
533 case XML_CATA_NEXT_CATALOG:
534 node = xmlNewDocNode(doc, ns, BAD_CAST "nextCatalog", NULL);
535 xmlSetProp(node, BAD_CAST "catalog", cur->value);
536 xmlAddChild(catalog, node);
537 break;
538 case XML_CATA_NONE:
539 break;
540 case XML_CATA_GROUP:
541 node = xmlNewDocNode(doc, ns, BAD_CAST "group", NULL);
542 xmlSetProp(node, BAD_CAST "id", cur->name);
543 if (cur->value != NULL) {
544 xmlNsPtr xns;
545 xns = xmlSearchNsByHref(doc, node, XML_XML_NAMESPACE);
546 if (xns != NULL)
547 xmlSetNsProp(node, xns, BAD_CAST "base",
548 cur->value);
549 }
550 switch (cur->prefer) {
551 case XML_CATA_PREFER_NONE:
552 break;
553 case XML_CATA_PREFER_PUBLIC:
554 xmlSetProp(node, BAD_CAST "prefer", BAD_CAST "public");
555 break;
556 case XML_CATA_PREFER_SYSTEM:
557 xmlSetProp(node, BAD_CAST "prefer", BAD_CAST "system");
558 break;
559 }
560 xmlDumpXMLCatalogNode(cur->next, node, doc, ns, cur);
561 xmlAddChild(catalog, node);
562 break;
563 case XML_CATA_PUBLIC:
564 node = xmlNewDocNode(doc, ns, BAD_CAST "public", NULL);
565 xmlSetProp(node, BAD_CAST "publicId", cur->name);
566 xmlSetProp(node, BAD_CAST "uri", cur->value);
567 xmlAddChild(catalog, node);
568 break;
569 case XML_CATA_SYSTEM:
570 node = xmlNewDocNode(doc, ns, BAD_CAST "system", NULL);

Callers 1

xmlDumpXMLCatalogFunction · 0.85

Calls 5

xmlNewDocNodeFunction · 0.85
xmlSetPropFunction · 0.85
xmlAddChildFunction · 0.85
xmlSearchNsByHrefFunction · 0.85
xmlSetNsPropFunction · 0.85

Tested by

no test coverage detected