Diff for /rpm2html/rdf_api.c between versions 1.7 and 1.8

version 1.7, 1998/07/28 05:58:10 version 1.8, 1998/08/06 04:28:09
Line 65  void rdfWriteMemory(rdfSchema rdf, char Line 65  void rdfWriteMemory(rdfSchema rdf, char
  */   */
 rdfSchema rdfNewSchema() {  rdfSchema rdfNewSchema() {
     xmlDocPtr res;      xmlDocPtr res;
     xmlDtdPtr rdf;      xmlNsPtr rdf;
         
     res = xmlNewDoc("1.0");      res = xmlNewDoc("1.0");
     rdf = xmlNewDtd(res, "http://www.w3.org/TR/WD-rdf-syntax#", "RDF");      rdf = xmlNewNs(res, "http://www.w3.org/TR/WD-rdf-syntax#", "RDF");
     res->root = xmlNewNode(rdf, strdup("RDF"), NULL);      res->root = xmlNewNode(rdf, strdup("RDF"), NULL);
   
     return((rdfSchema) res);      return((rdfSchema) res);
Line 77  rdfSchema rdfNewSchema() { Line 77  rdfSchema rdfNewSchema() {
 /*  /*
  * Adding a new namespace to an RDF schema.   * Adding a new namespace to an RDF schema.
  */   */
 rdfNamespace rdfNewNamespace(rdfSchema rdf, const char *url, const char *ns) {  rdfNamespace rdfNewNamespace(rdfSchema rdf, const char *url,
     xmlDtdPtr dtd;                               const char *namespace) {
       xmlNsPtr ns;
         
     dtd = xmlNewDtd(rdf, url, ns);      ns = xmlNewNs(rdf, url, namespace);
   
     return((rdfNamespace) dtd);      return((rdfNamespace) ns);
 }  }
   
 /*  /*
  * Get a namespace associated to an RDF schema.   * Get a namespace associated to an RDF schema.
  */   */
 rdfNamespace rdfGetNamespace(rdfSchema rdf, const char *href) {  rdfNamespace rdfGetNamespace(rdfSchema rdf, const char *href) {
     xmlDtdPtr dtd;      xmlNsPtr ns;
         
     dtd = rdf->dtds;      ns = rdf->nss;
     while (dtd != NULL) {      while (ns != NULL) {
         if (!strcmp(dtd->href, href))          if (!strcmp(ns->href, href))
             return((rdfNamespace) dtd);              return((rdfNamespace) ns);
         dtd = dtd->next;          ns = ns->next;
     }      }
     return(NULL);      return(NULL);
 }  }
Line 104  rdfNamespace rdfGetNamespace(rdfSchema r Line 105  rdfNamespace rdfGetNamespace(rdfSchema r
  * Get the RDF namespace associated to an RDF schema.   * Get the RDF namespace associated to an RDF schema.
  */   */
 rdfNamespace rdfGetRdfNamespace(rdfSchema rdf) {  rdfNamespace rdfGetRdfNamespace(rdfSchema rdf) {
     xmlDtdPtr dtd;      xmlNsPtr ns;
         
     dtd = rdf->dtds;      ns = rdf->nss;
     while (dtd != NULL) {      while (ns != NULL) {
         if (!strcmp(dtd->href, "http://www.w3.org/TR/WD-rdf-syntax#"))          if (!strcmp(ns->href, "http://www.w3.org/TR/WD-rdf-syntax#"))
             return((rdfNamespace) dtd);              return((rdfNamespace) ns);
         dtd = dtd->next;          ns = ns->next;
     }      }
     /* create it ! */      /* create it ! */
     return(rdfNewNamespace(rdf, "http://www.w3.org/TR/WD-rdf-syntax#", "RDF"));      return(rdfNewNamespace(rdf, "http://www.w3.org/TR/WD-rdf-syntax#", "RDF"));
Line 139  rdfDescription rdfFirstDescription(rdfSc Line 140  rdfDescription rdfFirstDescription(rdfSc
     if (tree == NULL) return(NULL);      if (tree == NULL) return(NULL);
     tree = tree->childs;      tree = tree->childs;
     while (tree != NULL) {      while (tree != NULL) {
         if ((tree->dtd == rdfNs) && (!strcmp(tree->name, "Description")))          if ((tree->ns == rdfNs) && (!strcmp(tree->name, "Description")))
             return(tree);              return(tree);
         tree = tree->next;          tree = tree->next;
     }      }
Line 151  rdfDescription rdfNextDescription(rdfDes Line 152  rdfDescription rdfNextDescription(rdfDes
     rdfNamespace rdfNs;      rdfNamespace rdfNs;
   
     if (desc == NULL) return(NULL);      if (desc == NULL) return(NULL);
     rdfNs = desc->dtd;      rdfNs = desc->ns;
     desc = desc->next;      desc = desc->next;
     while (desc != NULL) {      while (desc != NULL) {
         if ((desc->dtd == rdfNs) && (!strcmp(desc->name, "Description")))          if ((desc->ns == rdfNs) && (!strcmp(desc->name, "Description")))
             return(desc);              return(desc);
         desc = desc->next;          desc = desc->next;
     }      }
Line 176  rdfDescription rdfAddDescription(rdfSche Line 177  rdfDescription rdfAddDescription(rdfSche
     }      }
     if (about != NULL) {      if (about != NULL) {
         if (oldXMLWDcompatibility) {          if (oldXMLWDcompatibility) {
             rdfNamespace dtd;              rdfNamespace ns;
             char *buf;              char *buf;
   
             dtd = rdfGetRdfNamespace(schema);              ns = rdfGetRdfNamespace(schema);
             buf = (char *) malloc(strlen(dtd->AS) + 10);              buf = (char *) malloc(strlen(ns->prefix) + 10);
             sprintf(buf, "%s:HREF", dtd->AS);              sprintf(buf, "%s:HREF", ns->prefix);
             xmlNewProp(tree, buf, about);               xmlNewProp(tree, buf, about); 
             free(buf);              free(buf);
         } else {          } else {
Line 203  char *rdfGetDescriptionId(rdfSchema sche Line 204  char *rdfGetDescriptionId(rdfSchema sche
   
 char *rdfGetDescriptionAbout(rdfSchema schema, rdfDescription desc) {  char *rdfGetDescriptionAbout(rdfSchema schema, rdfDescription desc) {
     char *res;      char *res;
     rdfNamespace dtd;      rdfNamespace ns;
     char *buf;      char *buf;
   
     res = (char *) xmlGetProp(desc, "about");      res = (char *) xmlGetProp(desc, "about");
Line 212  char *rdfGetDescriptionAbout(rdfSchema s Line 213  char *rdfGetDescriptionAbout(rdfSchema s
     /*      /*
      * Maintain compatibility with old "RDF:HREF"       * Maintain compatibility with old "RDF:HREF"
      */       */
     dtd = rdfGetRdfNamespace(schema);      res = (char *) xmlGetProp(desc, "HREF");
     buf = (char *) malloc(strlen(dtd->AS) + 10);      if (res != NULL) return(res);
     sprintf(buf, "%s:HREF", dtd->AS);      ns = rdfGetRdfNamespace(schema);
       buf = (char *) malloc(strlen(ns->prefix) + 10);
       sprintf(buf, "%s:HREF", ns->prefix);
     res = (char *) xmlGetProp(desc, buf);      res = (char *) xmlGetProp(desc, buf);
     free(buf);      free(buf);
     return(res);      return(res);
Line 265  int rdfGetValue(rdfDescription desc, con Line 268  int rdfGetValue(rdfDescription desc, con
     if (elem != NULL) *elem = NULL;      if (elem != NULL) *elem = NULL;
   
     while (list != NULL) {      while (list != NULL) {
         if ((list->dtd == ns) && (!strcmp(list->name, property))) {          if ((list->ns == ns) && (!strcmp(list->name, property))) {
             /*              /*
              * Found a perfect match, return it !               * Found a perfect match, return it !
              */               */
Line 282  int rdfGetValue(rdfDescription desc, con Line 285  int rdfGetValue(rdfDescription desc, con
             if (!strcmp(list->name, "Description")) return(RDF_DESC);              if (!strcmp(list->name, "Description")) return(RDF_DESC);
             return(0);              return(0);
         }          }
         else if (((list->dtd == NULL) || (ns == NULL)) &&          else if (((list->ns == NULL) || (ns == NULL)) &&
                  (!strcmp(list->name, property))) {                   (!strcmp(list->name, property))) {
             /*              /*
              * If more than one "best" match exists, ignore them !               * If more than one "best" match exists, ignore them !
Line 327  void rdfSetValue(rdfDescription desc, co Line 330  void rdfSetValue(rdfDescription desc, co
      * Search the property.       * Search the property.
      */       */
     while (list != NULL) {      while (list != NULL) {
         if ((list->dtd == ns) && (!strcmp(list->name, property))) {          if ((list->ns == ns) && (!strcmp(list->name, property))) {
             /*              /*
              * Property was found, update it !               * Property was found, update it !
              */               */
Line 364  void rdfRemoveProperty(rdfDescription de Line 367  void rdfRemoveProperty(rdfDescription de
      * Search the property.       * Search the property.
      */       */
     while (list != NULL) {      while (list != NULL) {
         if ((list->dtd == ns) && (!strcmp(list->name, property))) {          if ((list->ns == ns) && (!strcmp(list->name, property))) {
             /*              /*
              * Property was found, delete it !               * Property was found, delete it !
              */               */
Line 446  const char *rdfElemGetPropertyName(rdfEl Line 449  const char *rdfElemGetPropertyName(rdfEl
     return(elem->name);      return(elem->name);
 }  }
 rdfNamespace rdfElemGetNamespace(rdfElement elem) {  rdfNamespace rdfElemGetNamespace(rdfElement elem) {
     return(elem->dtd);      return(elem->ns);
 }  }
 void rdfElemSetValue(rdfElement elem, const char *value) {  void rdfElemSetValue(rdfElement elem, const char *value) {
     if (elem->childs != NULL) {      if (elem->childs != NULL) {

Removed from v.1.7  
changed lines
  Added in v.1.8


Webmaster