
/*
Program for testing xml objects creation, free and storage managment
$Id: xmlTest1.c,v 1.3 2004/07/01 13:45:08 parmentf Exp $
 */


#include "SxmlNode.h"

void freeWithComment(x1)
     SxmlNode *x1;
{
  printf("%d,%d\n",SxmlNumberOfNodes,SxmlNodesFreeListLenght() );
  SxmlFree(x1);
  printf("%d,%d\n",SxmlNumberOfNodes,SxmlNodesFreeListLenght() );
}

int main()

{
  SxmlNode *n2;
  SxmlNode *n3;

  printf("==== test 1\n-- creation comment,element, comment et liberation \n");

  n2=SxmlCommentCreate("coucou");
  SxmlPrint(n2);
  putchar('\n');
  printf("%d\n",SxmlNumberOfNodes);
  n3=SxmlElementCreate("he");
  SxmlPrint(n3);
  putchar('\n');
  printf("%d,%d\n",SxmlNumberOfNodes,SxmlNodesFreeListLenght() );
  SxmlFree(n2);
  printf("%d,%d\n",SxmlNumberOfNodes,SxmlNodesFreeListLenght() );
  n2=SxmlCommentCreate("coucou");
  SxmlPrint(n2);
  printf("%d\n",SxmlNumberOfNodes);
  SxmlFree(n2);
  printf("==== test 2\n-- creation element evec fils et liberation \n");

  SxmlAppendChild(n3,SxmlElementCreate("h1"));
  SxmlAppendChild(n3,SxmlLeafCreate("h2","toto"));
  SxmlSetAttribute(n3,"truc","machin");
  SxmlPrint(n3);
  putchar('\n');
  freeWithComment(n3);

  printf("==== test 3\n-- creation DTD et liberation \n");
  n2=SxmlDocumentTypeCreate("refdoc");
  SxmlDocumentTypeSetSystem(n2,"http://inist.www.fr/dtd/refdoc.dtd");
  SxmlAppendChild(n2,SxmlCommentCreate(" Copyright INIST "));
  n3=SxmlElementCreate("elementType");
  SxmlSetAttribute(n3,"name","pA");
  SxmlDocumentTypeAppendChild(n2,n3);
  SxmlPrint(n2);
  putchar('\n');
  freeWithComment(n2);

  printf("==== test 4\n-- creation Record et liberation \n");
  n2=SxmlRecordCreate();
  SxmlAppendChild(n2,SxmlFromString("0123"));
  SxmlAppendChild(n2,SxmlFromString("<a>aze</a>"));
  SxmlPrint(n2);
  freeWithComment(n2);


  printf("==== test 5\n-- creation Record et liberation verif free \n");
  n2=SxmlRecordCreate();
  SxmlAppendChild(n2,SxmlFromString("0123"));
  SxmlAppendChild(n2,SxmlFromString("<a>aze</a>"));
  SxmlPrint(n2);
  freeWithComment(n2);

  printf("==== test 6\n-- recuperation contenu textuel d'un noeud\n");
  n2=SxmlFromString("<title>This is an example<sup>2</sup>, with indices<sub>3</sub></title>");
  printf("%s\n",SxmlGetTextContent(n2));
  freeWithComment(n2);

  return 0;
}

