Initial revision
[TestXSLT.git] / libxml2 / doc / html / libxml-uri.html
1 <HTML
2 ><HEAD
3 ><TITLE
4 >uri</TITLE
5 ><META
6 NAME="GENERATOR"
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
8 "><LINK
9 REL="HOME"
10 TITLE="Gnome XML Library Reference Manual"
11 HREF="book1.html"><LINK
12 REL="UP"
13 TITLE="Libxml Library Reference"
14 HREF="libxml-lib.html"><LINK
15 REL="PREVIOUS"
16 TITLE="valid"
17 HREF="libxml-valid.html"><LINK
18 REL="NEXT"
19 TITLE="xmlerror"
20 HREF="libxml-xmlerror.html"></HEAD
21 ><BODY
22 CLASS="REFENTRY"
23 BGCOLOR="#FFFFFF"
24 TEXT="#000000"
25 LINK="#0000FF"
26 VLINK="#840084"
27 ALINK="#0000FF"
28 ><DIV
29 CLASS="NAVHEADER"
30 ><TABLE
31 WIDTH="100%"
32 BORDER="0"
33 BGCOLOR="#000000"
34 CELLPADDING="1"
35 CELLSPACING="0"
36 ><TR
37 ><TH
38 COLSPAN="4"
39 ALIGN="center"
40 ><FONT
41 COLOR="#FFFFFF"
42 SIZE="5"
43 >Gnome XML Library Reference Manual</FONT
44 ></TH
45 ></TR
46 ><TR
47 ><TD
48 WIDTH="25%"
49 BGCOLOR="#C00000"
50 ALIGN="left"
51 ><A
52 HREF="libxml-valid.html"
53 ><FONT
54 COLOR="#FFFFFF"
55 SIZE="3"
56 ><B
57 >&#60;&#60;&#60; Previous Page</B
58 ></FONT
59 ></A
60 ></TD
61 ><TD
62 WIDTH="25%"
63 BGCOLOR="#0000C0"
64 ALIGN="center"
65 ><FONT
66 COLOR="#FFFFFF"
67 SIZE="3"
68 ><B
69 ><A
70 HREF="book1.html"
71 ><FONT
72 COLOR="#FFFFFF"
73 SIZE="3"
74 ><B
75 >Home</B
76 ></FONT
77 ></A
78 ></B
79 ></FONT
80 ></TD
81 ><TD
82 WIDTH="25%"
83 BGCOLOR="#00C000"
84 ALIGN="center"
85 ><FONT
86 COLOR="#FFFFFF"
87 SIZE="3"
88 ><B
89 ><A
90 HREF="libxml-lib.html"
91 ><FONT
92 COLOR="#FFFFFF"
93 SIZE="3"
94 ><B
95 >Up</B
96 ></FONT
97 ></A
98 ></B
99 ></FONT
100 ></TD
101 ><TD
102 WIDTH="25%"
103 BGCOLOR="#C00000"
104 ALIGN="right"
105 ><A
106 HREF="libxml-xmlerror.html"
107 ><FONT
108 COLOR="#FFFFFF"
109 SIZE="3"
110 ><B
111 >Next Page &#62;&#62;&#62;</B
112 ></FONT
113 ></A
114 ></TD
115 ></TR
116 ></TABLE
117 ></DIV
118 ><H1
119 ><A
120 NAME="LIBXML-URI">uri</H1
121 ><DIV
122 CLASS="REFNAMEDIV"
123 ><A
124 NAME="AEN10662"
125 ></A
126 ><H2
127 >Name</H2
128 >uri&nbsp;--&nbsp;</DIV
129 ><DIV
130 CLASS="REFSYNOPSISDIV"
131 ><A
132 NAME="AEN10665"><H2
133 >Synopsis</H2
134 ><TABLE
135 BORDER="0"
136 BGCOLOR="#D6E8FF"
137 WIDTH="100%"
138 CELLPADDING="6"
139 ><TR
140 ><TD
141 ><PRE
142 CLASS="SYNOPSIS"
143 >&#13;
144
145 struct      <A
146 HREF="libxml-uri.html#XMLURI"
147 >xmlURI</A
148 >;
149 typedef     <A
150 HREF="libxml-uri.html#XMLURIPTR"
151 >xmlURIPtr</A
152 >;
153 <A
154 HREF="libxml-uri.html#XMLURIPTR"
155 >xmlURIPtr</A
156 >   <A
157 HREF="libxml-uri.html#XMLCREATEURI"
158 >xmlCreateURI</A
159 >                    (void);
160 <A
161 HREF="libxml-tree.html#XMLCHAR"
162 >xmlChar</A
163 >*    <A
164 HREF="libxml-uri.html#XMLBUILDURI"
165 >xmlBuildURI</A
166 >                     (const <A
167 HREF="libxml-tree.html#XMLCHAR"
168 >xmlChar</A
169 > *URI,
170                                              const <A
171 HREF="libxml-tree.html#XMLCHAR"
172 >xmlChar</A
173 > *base);
174 <A
175 HREF="libxml-uri.html#XMLURIPTR"
176 >xmlURIPtr</A
177 >   <A
178 HREF="libxml-uri.html#XMLPARSEURI"
179 >xmlParseURI</A
180 >                     (const char *str);
181 int         <A
182 HREF="libxml-uri.html#XMLPARSEURIREFERENCE"
183 >xmlParseURIReference</A
184 >            (<A
185 HREF="libxml-uri.html#XMLURIPTR"
186 >xmlURIPtr</A
187 > uri,
188                                              const char *str);
189 <A
190 HREF="libxml-tree.html#XMLCHAR"
191 >xmlChar</A
192 >*    <A
193 HREF="libxml-uri.html#XMLSAVEURI"
194 >xmlSaveUri</A
195 >                      (<A
196 HREF="libxml-uri.html#XMLURIPTR"
197 >xmlURIPtr</A
198 > uri);
199 void        <A
200 HREF="libxml-uri.html#XMLPRINTURI"
201 >xmlPrintURI</A
202 >                     (<GTKDOCLINK
203 HREF="FILE-CAPS"
204 >FILE</GTKDOCLINK
205 > *stream,
206                                              <A
207 HREF="libxml-uri.html#XMLURIPTR"
208 >xmlURIPtr</A
209 > uri);
210 <A
211 HREF="libxml-tree.html#XMLCHAR"
212 >xmlChar</A
213 >*    <A
214 HREF="libxml-uri.html#XMLURIESCAPESTR"
215 >xmlURIEscapeStr</A
216 >                 (const <A
217 HREF="libxml-tree.html#XMLCHAR"
218 >xmlChar</A
219 > *str,
220                                              const <A
221 HREF="libxml-tree.html#XMLCHAR"
222 >xmlChar</A
223 > *list);
224 char*       <A
225 HREF="libxml-uri.html#XMLURIUNESCAPESTRING"
226 >xmlURIUnescapeString</A
227 >            (const char *str,
228                                              int len,
229                                              char *target);
230 int         <A
231 HREF="libxml-uri.html#XMLNORMALIZEURIPATH"
232 >xmlNormalizeURIPath</A
233 >             (char *path);
234 <A
235 HREF="libxml-tree.html#XMLCHAR"
236 >xmlChar</A
237 >*    <A
238 HREF="libxml-uri.html#XMLURIESCAPE"
239 >xmlURIEscape</A
240 >                    (const <A
241 HREF="libxml-tree.html#XMLCHAR"
242 >xmlChar</A
243 > *str);
244 void        <A
245 HREF="libxml-uri.html#XMLFREEURI"
246 >xmlFreeURI</A
247 >                      (<A
248 HREF="libxml-uri.html#XMLURIPTR"
249 >xmlURIPtr</A
250 > uri);</PRE
251 ></TD
252 ></TR
253 ></TABLE
254 ></DIV
255 ><DIV
256 CLASS="REFSECT1"
257 ><A
258 NAME="AEN10697"
259 ></A
260 ><H2
261 >Description</H2
262 ><P
263 ></P
264 ></DIV
265 ><DIV
266 CLASS="REFSECT1"
267 ><A
268 NAME="AEN10700"
269 ></A
270 ><H2
271 >Details</H2
272 ><DIV
273 CLASS="REFSECT2"
274 ><A
275 NAME="AEN10702"
276 ></A
277 ><H3
278 ><A
279 NAME="XMLURI"
280 ></A
281 >struct xmlURI</H3
282 ><TABLE
283 BORDER="0"
284 BGCOLOR="#D6E8FF"
285 WIDTH="100%"
286 CELLPADDING="6"
287 ><TR
288 ><TD
289 ><PRE
290 CLASS="PROGRAMLISTING"
291 >struct xmlURI {
292     char *scheme;       /* the URI scheme */
293     char *opaque;       /* opaque part */
294     char *authority;    /* the authority part */
295     char *server;       /* the server part */
296     char *user;         /* the user part */
297     int port;           /* the port number */
298     char *path;         /* the path string */
299     char *query;        /* the query string */
300     char *fragment;     /* the fragment identifier */
301     int  cleanup;       /* parsing potentially unclean URI */
302 };</PRE
303 ></TD
304 ></TR
305 ></TABLE
306 ><P
307 >A parsed URI reference. This is a struct containing the various fields
308 as described in RFC 2396 but separated for further processing.</P
309 ><P
310 ></P
311 ></DIV
312 ><HR><DIV
313 CLASS="REFSECT2"
314 ><A
315 NAME="AEN10708"
316 ></A
317 ><H3
318 ><A
319 NAME="XMLURIPTR"
320 ></A
321 >xmlURIPtr</H3
322 ><TABLE
323 BORDER="0"
324 BGCOLOR="#D6E8FF"
325 WIDTH="100%"
326 CELLPADDING="6"
327 ><TR
328 ><TD
329 ><PRE
330 CLASS="PROGRAMLISTING"
331 >typedef xmlURI *xmlURIPtr;</PRE
332 ></TD
333 ></TR
334 ></TABLE
335 ><P
336 ></P
337 ></DIV
338 ><HR><DIV
339 CLASS="REFSECT2"
340 ><A
341 NAME="AEN10713"
342 ></A
343 ><H3
344 ><A
345 NAME="XMLCREATEURI"
346 ></A
347 >xmlCreateURI ()</H3
348 ><TABLE
349 BORDER="0"
350 BGCOLOR="#D6E8FF"
351 WIDTH="100%"
352 CELLPADDING="6"
353 ><TR
354 ><TD
355 ><PRE
356 CLASS="PROGRAMLISTING"
357 ><A
358 HREF="libxml-uri.html#XMLURIPTR"
359 >xmlURIPtr</A
360 >   xmlCreateURI                    (void);</PRE
361 ></TD
362 ></TR
363 ></TABLE
364 ><P
365 >Simply creates an empty xmlURI</P
366 ><P
367 ></P
368 ><DIV
369 CLASS="INFORMALTABLE"
370 ><A
371 NAME="AEN10720"><P
372 ></P
373 ><TABLE
374 BORDER="0"
375 WIDTH="100%"
376 BGCOLOR="#FFD0D0"
377 CELLSPACING="0"
378 CELLPADDING="4"
379 CLASS="CALSTABLE"
380 ><TBODY
381 ><TR
382 ><TD
383 WIDTH="20%"
384 ALIGN="RIGHT"
385 VALIGN="TOP"
386 ><SPAN
387 CLASS="emphasis"
388 ><I
389 CLASS="EMPHASIS"
390 >Returns</I
391 ></SPAN
392 > :</TD
393 ><TD
394 WIDTH="80%"
395 ALIGN="LEFT"
396 VALIGN="TOP"
397 >the new structure or NULL in case of error</TD
398 ></TR
399 ></TBODY
400 ></TABLE
401 ><P
402 ></P
403 ></DIV
404 ></DIV
405 ><HR><DIV
406 CLASS="REFSECT2"
407 ><A
408 NAME="AEN10729"
409 ></A
410 ><H3
411 ><A
412 NAME="XMLBUILDURI"
413 ></A
414 >xmlBuildURI ()</H3
415 ><TABLE
416 BORDER="0"
417 BGCOLOR="#D6E8FF"
418 WIDTH="100%"
419 CELLPADDING="6"
420 ><TR
421 ><TD
422 ><PRE
423 CLASS="PROGRAMLISTING"
424 ><A
425 HREF="libxml-tree.html#XMLCHAR"
426 >xmlChar</A
427 >*    xmlBuildURI                     (const <A
428 HREF="libxml-tree.html#XMLCHAR"
429 >xmlChar</A
430 > *URI,
431                                              const <A
432 HREF="libxml-tree.html#XMLCHAR"
433 >xmlChar</A
434 > *base);</PRE
435 ></TD
436 ></TR
437 ></TABLE
438 ><P
439 >Computes he final URI of the reference done by checking that
440 the given URI is valid, and building the final URI using the
441 base URI. This is processed according to section 5.2 of the 
442 RFC 2396</P
443 ><P
444 >5.2. Resolving Relative References to Absolute Form</P
445 ><P
446 ></P
447 ><DIV
448 CLASS="INFORMALTABLE"
449 ><A
450 NAME="AEN10739"><P
451 ></P
452 ><TABLE
453 BORDER="0"
454 WIDTH="100%"
455 BGCOLOR="#FFD0D0"
456 CELLSPACING="0"
457 CELLPADDING="4"
458 CLASS="CALSTABLE"
459 ><TBODY
460 ><TR
461 ><TD
462 WIDTH="20%"
463 ALIGN="RIGHT"
464 VALIGN="TOP"
465 ><TT
466 CLASS="PARAMETER"
467 ><I
468 >URI</I
469 ></TT
470 >&nbsp;:</TD
471 ><TD
472 WIDTH="80%"
473 ALIGN="LEFT"
474 VALIGN="TOP"
475 >  the URI instance found in the document</TD
476 ></TR
477 ><TR
478 ><TD
479 WIDTH="20%"
480 ALIGN="RIGHT"
481 VALIGN="TOP"
482 ><TT
483 CLASS="PARAMETER"
484 ><I
485 >base</I
486 ></TT
487 >&nbsp;:</TD
488 ><TD
489 WIDTH="80%"
490 ALIGN="LEFT"
491 VALIGN="TOP"
492 >  the base value</TD
493 ></TR
494 ><TR
495 ><TD
496 WIDTH="20%"
497 ALIGN="RIGHT"
498 VALIGN="TOP"
499 ><SPAN
500 CLASS="emphasis"
501 ><I
502 CLASS="EMPHASIS"
503 >Returns</I
504 ></SPAN
505 > :</TD
506 ><TD
507 WIDTH="80%"
508 ALIGN="LEFT"
509 VALIGN="TOP"
510 >a new URI string (to be freed by the caller) or NULL in case
511 of error.</TD
512 ></TR
513 ></TBODY
514 ></TABLE
515 ><P
516 ></P
517 ></DIV
518 ></DIV
519 ><HR><DIV
520 CLASS="REFSECT2"
521 ><A
522 NAME="AEN10756"
523 ></A
524 ><H3
525 ><A
526 NAME="XMLPARSEURI"
527 ></A
528 >xmlParseURI ()</H3
529 ><TABLE
530 BORDER="0"
531 BGCOLOR="#D6E8FF"
532 WIDTH="100%"
533 CELLPADDING="6"
534 ><TR
535 ><TD
536 ><PRE
537 CLASS="PROGRAMLISTING"
538 ><A
539 HREF="libxml-uri.html#XMLURIPTR"
540 >xmlURIPtr</A
541 >   xmlParseURI                     (const char *str);</PRE
542 ></TD
543 ></TR
544 ></TABLE
545 ><P
546 >Parse an URI </P
547 ><P
548 >URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</P
549 ><P
550 ></P
551 ><DIV
552 CLASS="INFORMALTABLE"
553 ><A
554 NAME="AEN10764"><P
555 ></P
556 ><TABLE
557 BORDER="0"
558 WIDTH="100%"
559 BGCOLOR="#FFD0D0"
560 CELLSPACING="0"
561 CELLPADDING="4"
562 CLASS="CALSTABLE"
563 ><TBODY
564 ><TR
565 ><TD
566 WIDTH="20%"
567 ALIGN="RIGHT"
568 VALIGN="TOP"
569 ><TT
570 CLASS="PARAMETER"
571 ><I
572 >str</I
573 ></TT
574 >&nbsp;:</TD
575 ><TD
576 WIDTH="80%"
577 ALIGN="LEFT"
578 VALIGN="TOP"
579 >  the URI string to analyze</TD
580 ></TR
581 ><TR
582 ><TD
583 WIDTH="20%"
584 ALIGN="RIGHT"
585 VALIGN="TOP"
586 ><SPAN
587 CLASS="emphasis"
588 ><I
589 CLASS="EMPHASIS"
590 >Returns</I
591 ></SPAN
592 > :</TD
593 ><TD
594 WIDTH="80%"
595 ALIGN="LEFT"
596 VALIGN="TOP"
597 >a newly build xmlURIPtr or NULL in case of error</TD
598 ></TR
599 ></TBODY
600 ></TABLE
601 ><P
602 ></P
603 ></DIV
604 ></DIV
605 ><HR><DIV
606 CLASS="REFSECT2"
607 ><A
608 NAME="AEN10777"
609 ></A
610 ><H3
611 ><A
612 NAME="XMLPARSEURIREFERENCE"
613 ></A
614 >xmlParseURIReference ()</H3
615 ><TABLE
616 BORDER="0"
617 BGCOLOR="#D6E8FF"
618 WIDTH="100%"
619 CELLPADDING="6"
620 ><TR
621 ><TD
622 ><PRE
623 CLASS="PROGRAMLISTING"
624 >int         xmlParseURIReference            (<A
625 HREF="libxml-uri.html#XMLURIPTR"
626 >xmlURIPtr</A
627 > uri,
628                                              const char *str);</PRE
629 ></TD
630 ></TR
631 ></TABLE
632 ><P
633 >Parse an URI reference string and fills in the appropriate fields
634 of the <TT
635 CLASS="PARAMETER"
636 ><I
637 >uri</I
638 ></TT
639 > structure</P
640 ><P
641 >URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</P
642 ><P
643 ></P
644 ><DIV
645 CLASS="INFORMALTABLE"
646 ><A
647 NAME="AEN10786"><P
648 ></P
649 ><TABLE
650 BORDER="0"
651 WIDTH="100%"
652 BGCOLOR="#FFD0D0"
653 CELLSPACING="0"
654 CELLPADDING="4"
655 CLASS="CALSTABLE"
656 ><TBODY
657 ><TR
658 ><TD
659 WIDTH="20%"
660 ALIGN="RIGHT"
661 VALIGN="TOP"
662 ><TT
663 CLASS="PARAMETER"
664 ><I
665 >uri</I
666 ></TT
667 >&nbsp;:</TD
668 ><TD
669 WIDTH="80%"
670 ALIGN="LEFT"
671 VALIGN="TOP"
672 >  pointer to an URI structure</TD
673 ></TR
674 ><TR
675 ><TD
676 WIDTH="20%"
677 ALIGN="RIGHT"
678 VALIGN="TOP"
679 ><TT
680 CLASS="PARAMETER"
681 ><I
682 >str</I
683 ></TT
684 >&nbsp;:</TD
685 ><TD
686 WIDTH="80%"
687 ALIGN="LEFT"
688 VALIGN="TOP"
689 >  the string to analyze</TD
690 ></TR
691 ><TR
692 ><TD
693 WIDTH="20%"
694 ALIGN="RIGHT"
695 VALIGN="TOP"
696 ><SPAN
697 CLASS="emphasis"
698 ><I
699 CLASS="EMPHASIS"
700 >Returns</I
701 ></SPAN
702 > :</TD
703 ><TD
704 WIDTH="80%"
705 ALIGN="LEFT"
706 VALIGN="TOP"
707 >0 or the error code</TD
708 ></TR
709 ></TBODY
710 ></TABLE
711 ><P
712 ></P
713 ></DIV
714 ></DIV
715 ><HR><DIV
716 CLASS="REFSECT2"
717 ><A
718 NAME="AEN10803"
719 ></A
720 ><H3
721 ><A
722 NAME="XMLSAVEURI"
723 ></A
724 >xmlSaveUri ()</H3
725 ><TABLE
726 BORDER="0"
727 BGCOLOR="#D6E8FF"
728 WIDTH="100%"
729 CELLPADDING="6"
730 ><TR
731 ><TD
732 ><PRE
733 CLASS="PROGRAMLISTING"
734 ><A
735 HREF="libxml-tree.html#XMLCHAR"
736 >xmlChar</A
737 >*    xmlSaveUri                      (<A
738 HREF="libxml-uri.html#XMLURIPTR"
739 >xmlURIPtr</A
740 > uri);</PRE
741 ></TD
742 ></TR
743 ></TABLE
744 ><P
745 >Save the URI as an escaped string</P
746 ><P
747 ></P
748 ><DIV
749 CLASS="INFORMALTABLE"
750 ><A
751 NAME="AEN10811"><P
752 ></P
753 ><TABLE
754 BORDER="0"
755 WIDTH="100%"
756 BGCOLOR="#FFD0D0"
757 CELLSPACING="0"
758 CELLPADDING="4"
759 CLASS="CALSTABLE"
760 ><TBODY
761 ><TR
762 ><TD
763 WIDTH="20%"
764 ALIGN="RIGHT"
765 VALIGN="TOP"
766 ><TT
767 CLASS="PARAMETER"
768 ><I
769 >uri</I
770 ></TT
771 >&nbsp;:</TD
772 ><TD
773 WIDTH="80%"
774 ALIGN="LEFT"
775 VALIGN="TOP"
776 >  pointer to an xmlURI</TD
777 ></TR
778 ><TR
779 ><TD
780 WIDTH="20%"
781 ALIGN="RIGHT"
782 VALIGN="TOP"
783 ><SPAN
784 CLASS="emphasis"
785 ><I
786 CLASS="EMPHASIS"
787 >Returns</I
788 ></SPAN
789 > :</TD
790 ><TD
791 WIDTH="80%"
792 ALIGN="LEFT"
793 VALIGN="TOP"
794 >a new string (to be deallocated by caller)</TD
795 ></TR
796 ></TBODY
797 ></TABLE
798 ><P
799 ></P
800 ></DIV
801 ></DIV
802 ><HR><DIV
803 CLASS="REFSECT2"
804 ><A
805 NAME="AEN10824"
806 ></A
807 ><H3
808 ><A
809 NAME="XMLPRINTURI"
810 ></A
811 >xmlPrintURI ()</H3
812 ><TABLE
813 BORDER="0"
814 BGCOLOR="#D6E8FF"
815 WIDTH="100%"
816 CELLPADDING="6"
817 ><TR
818 ><TD
819 ><PRE
820 CLASS="PROGRAMLISTING"
821 >void        xmlPrintURI                     (<GTKDOCLINK
822 HREF="FILE-CAPS"
823 >FILE</GTKDOCLINK
824 > *stream,
825                                              <A
826 HREF="libxml-uri.html#XMLURIPTR"
827 >xmlURIPtr</A
828 > uri);</PRE
829 ></TD
830 ></TR
831 ></TABLE
832 ><P
833 >Prints the URI in the stream <TT
834 CLASS="PARAMETER"
835 ><I
836 >steam</I
837 ></TT
838 >.</P
839 ><P
840 ></P
841 ><DIV
842 CLASS="INFORMALTABLE"
843 ><A
844 NAME="AEN10833"><P
845 ></P
846 ><TABLE
847 BORDER="0"
848 WIDTH="100%"
849 BGCOLOR="#FFD0D0"
850 CELLSPACING="0"
851 CELLPADDING="4"
852 CLASS="CALSTABLE"
853 ><TBODY
854 ><TR
855 ><TD
856 WIDTH="20%"
857 ALIGN="RIGHT"
858 VALIGN="TOP"
859 ><TT
860 CLASS="PARAMETER"
861 ><I
862 >stream</I
863 ></TT
864 >&nbsp;:</TD
865 ><TD
866 WIDTH="80%"
867 ALIGN="LEFT"
868 VALIGN="TOP"
869 >  a FILE* for the output</TD
870 ></TR
871 ><TR
872 ><TD
873 WIDTH="20%"
874 ALIGN="RIGHT"
875 VALIGN="TOP"
876 ><TT
877 CLASS="PARAMETER"
878 ><I
879 >uri</I
880 ></TT
881 >&nbsp;:</TD
882 ><TD
883 WIDTH="80%"
884 ALIGN="LEFT"
885 VALIGN="TOP"
886 >  pointer to an xmlURI</TD
887 ></TR
888 ></TBODY
889 ></TABLE
890 ><P
891 ></P
892 ></DIV
893 ></DIV
894 ><HR><DIV
895 CLASS="REFSECT2"
896 ><A
897 NAME="AEN10846"
898 ></A
899 ><H3
900 ><A
901 NAME="XMLURIESCAPESTR"
902 ></A
903 >xmlURIEscapeStr ()</H3
904 ><TABLE
905 BORDER="0"
906 BGCOLOR="#D6E8FF"
907 WIDTH="100%"
908 CELLPADDING="6"
909 ><TR
910 ><TD
911 ><PRE
912 CLASS="PROGRAMLISTING"
913 ><A
914 HREF="libxml-tree.html#XMLCHAR"
915 >xmlChar</A
916 >*    xmlURIEscapeStr                 (const <A
917 HREF="libxml-tree.html#XMLCHAR"
918 >xmlChar</A
919 > *str,
920                                              const <A
921 HREF="libxml-tree.html#XMLCHAR"
922 >xmlChar</A
923 > *list);</PRE
924 ></TD
925 ></TR
926 ></TABLE
927 ><P
928 >This routine escapes a string to hex, ignoring reserved characters (a-z)
929 and the characters in the exception list.</P
930 ><P
931 ></P
932 ><DIV
933 CLASS="INFORMALTABLE"
934 ><A
935 NAME="AEN10855"><P
936 ></P
937 ><TABLE
938 BORDER="0"
939 WIDTH="100%"
940 BGCOLOR="#FFD0D0"
941 CELLSPACING="0"
942 CELLPADDING="4"
943 CLASS="CALSTABLE"
944 ><TBODY
945 ><TR
946 ><TD
947 WIDTH="20%"
948 ALIGN="RIGHT"
949 VALIGN="TOP"
950 ><TT
951 CLASS="PARAMETER"
952 ><I
953 >str</I
954 ></TT
955 >&nbsp;:</TD
956 ><TD
957 WIDTH="80%"
958 ALIGN="LEFT"
959 VALIGN="TOP"
960 >  string to escape</TD
961 ></TR
962 ><TR
963 ><TD
964 WIDTH="20%"
965 ALIGN="RIGHT"
966 VALIGN="TOP"
967 ><TT
968 CLASS="PARAMETER"
969 ><I
970 >list</I
971 ></TT
972 >&nbsp;:</TD
973 ><TD
974 WIDTH="80%"
975 ALIGN="LEFT"
976 VALIGN="TOP"
977 > exception list string of chars not to escape</TD
978 ></TR
979 ><TR
980 ><TD
981 WIDTH="20%"
982 ALIGN="RIGHT"
983 VALIGN="TOP"
984 ><SPAN
985 CLASS="emphasis"
986 ><I
987 CLASS="EMPHASIS"
988 >Returns</I
989 ></SPAN
990 > :</TD
991 ><TD
992 WIDTH="80%"
993 ALIGN="LEFT"
994 VALIGN="TOP"
995 >a new escaped string or NULL in case of error.</TD
996 ></TR
997 ></TBODY
998 ></TABLE
999 ><P
1000 ></P
1001 ></DIV
1002 ></DIV
1003 ><HR><DIV
1004 CLASS="REFSECT2"
1005 ><A
1006 NAME="AEN10872"
1007 ></A
1008 ><H3
1009 ><A
1010 NAME="XMLURIUNESCAPESTRING"
1011 ></A
1012 >xmlURIUnescapeString ()</H3
1013 ><TABLE
1014 BORDER="0"
1015 BGCOLOR="#D6E8FF"
1016 WIDTH="100%"
1017 CELLPADDING="6"
1018 ><TR
1019 ><TD
1020 ><PRE
1021 CLASS="PROGRAMLISTING"
1022 >char*       xmlURIUnescapeString            (const char *str,
1023                                              int len,
1024                                              char *target);</PRE
1025 ></TD
1026 ></TR
1027 ></TABLE
1028 ><P
1029 >Unescaping routine, does not do validity checks !
1030 Output is direct unsigned char translation of <TT
1031 CLASS="LITERAL"
1032 >XX</TT
1033 > values (no encoding)</P
1034 ><P
1035 ></P
1036 ><DIV
1037 CLASS="INFORMALTABLE"
1038 ><A
1039 NAME="AEN10879"><P
1040 ></P
1041 ><TABLE
1042 BORDER="0"
1043 WIDTH="100%"
1044 BGCOLOR="#FFD0D0"
1045 CELLSPACING="0"
1046 CELLPADDING="4"
1047 CLASS="CALSTABLE"
1048 ><TBODY
1049 ><TR
1050 ><TD
1051 WIDTH="20%"
1052 ALIGN="RIGHT"
1053 VALIGN="TOP"
1054 ><TT
1055 CLASS="PARAMETER"
1056 ><I
1057 >str</I
1058 ></TT
1059 >&nbsp;:</TD
1060 ><TD
1061 WIDTH="80%"
1062 ALIGN="LEFT"
1063 VALIGN="TOP"
1064 >  the string to unescape</TD
1065 ></TR
1066 ><TR
1067 ><TD
1068 WIDTH="20%"
1069 ALIGN="RIGHT"
1070 VALIGN="TOP"
1071 ><TT
1072 CLASS="PARAMETER"
1073 ><I
1074 >len</I
1075 ></TT
1076 >&nbsp;:</TD
1077 ><TD
1078 WIDTH="80%"
1079 ALIGN="LEFT"
1080 VALIGN="TOP"
1081 >   the length in bytes to unescape (or &lt;= 0 to indicate full string)</TD
1082 ></TR
1083 ><TR
1084 ><TD
1085 WIDTH="20%"
1086 ALIGN="RIGHT"
1087 VALIGN="TOP"
1088 ><TT
1089 CLASS="PARAMETER"
1090 ><I
1091 >target</I
1092 ></TT
1093 >&nbsp;:</TD
1094 ><TD
1095 WIDTH="80%"
1096 ALIGN="LEFT"
1097 VALIGN="TOP"
1098 >  optional destination buffer</TD
1099 ></TR
1100 ><TR
1101 ><TD
1102 WIDTH="20%"
1103 ALIGN="RIGHT"
1104 VALIGN="TOP"
1105 ><SPAN
1106 CLASS="emphasis"
1107 ><I
1108 CLASS="EMPHASIS"
1109 >Returns</I
1110 ></SPAN
1111 > :</TD
1112 ><TD
1113 WIDTH="80%"
1114 ALIGN="LEFT"
1115 VALIGN="TOP"
1116 >an copy of the string, but unescaped</TD
1117 ></TR
1118 ></TBODY
1119 ></TABLE
1120 ><P
1121 ></P
1122 ></DIV
1123 ></DIV
1124 ><HR><DIV
1125 CLASS="REFSECT2"
1126 ><A
1127 NAME="AEN10900"
1128 ></A
1129 ><H3
1130 ><A
1131 NAME="XMLNORMALIZEURIPATH"
1132 ></A
1133 >xmlNormalizeURIPath ()</H3
1134 ><TABLE
1135 BORDER="0"
1136 BGCOLOR="#D6E8FF"
1137 WIDTH="100%"
1138 CELLPADDING="6"
1139 ><TR
1140 ><TD
1141 ><PRE
1142 CLASS="PROGRAMLISTING"
1143 >int         xmlNormalizeURIPath             (char *path);</PRE
1144 ></TD
1145 ></TR
1146 ></TABLE
1147 ><P
1148 >Applies the 5 normalization steps to a path string--that is, RFC 2396
1149 Section 5.2, steps 6.c through 6.g.</P
1150 ><P
1151 >Normalization occurs directly on the string, no new allocation is done</P
1152 ><P
1153 ></P
1154 ><DIV
1155 CLASS="INFORMALTABLE"
1156 ><A
1157 NAME="AEN10907"><P
1158 ></P
1159 ><TABLE
1160 BORDER="0"
1161 WIDTH="100%"
1162 BGCOLOR="#FFD0D0"
1163 CELLSPACING="0"
1164 CELLPADDING="4"
1165 CLASS="CALSTABLE"
1166 ><TBODY
1167 ><TR
1168 ><TD
1169 WIDTH="20%"
1170 ALIGN="RIGHT"
1171 VALIGN="TOP"
1172 ><TT
1173 CLASS="PARAMETER"
1174 ><I
1175 >path</I
1176 ></TT
1177 >&nbsp;:</TD
1178 ><TD
1179 WIDTH="80%"
1180 ALIGN="LEFT"
1181 VALIGN="TOP"
1182 >  pointer to the path string</TD
1183 ></TR
1184 ><TR
1185 ><TD
1186 WIDTH="20%"
1187 ALIGN="RIGHT"
1188 VALIGN="TOP"
1189 ><SPAN
1190 CLASS="emphasis"
1191 ><I
1192 CLASS="EMPHASIS"
1193 >Returns</I
1194 ></SPAN
1195 > :</TD
1196 ><TD
1197 WIDTH="80%"
1198 ALIGN="LEFT"
1199 VALIGN="TOP"
1200 >0 or an error code</TD
1201 ></TR
1202 ></TBODY
1203 ></TABLE
1204 ><P
1205 ></P
1206 ></DIV
1207 ></DIV
1208 ><HR><DIV
1209 CLASS="REFSECT2"
1210 ><A
1211 NAME="AEN10920"
1212 ></A
1213 ><H3
1214 ><A
1215 NAME="XMLURIESCAPE"
1216 ></A
1217 >xmlURIEscape ()</H3
1218 ><TABLE
1219 BORDER="0"
1220 BGCOLOR="#D6E8FF"
1221 WIDTH="100%"
1222 CELLPADDING="6"
1223 ><TR
1224 ><TD
1225 ><PRE
1226 CLASS="PROGRAMLISTING"
1227 ><A
1228 HREF="libxml-tree.html#XMLCHAR"
1229 >xmlChar</A
1230 >*    xmlURIEscape                    (const <A
1231 HREF="libxml-tree.html#XMLCHAR"
1232 >xmlChar</A
1233 > *str);</PRE
1234 ></TD
1235 ></TR
1236 ></TABLE
1237 ><P
1238 >Escaping routine, does not do validity checks !
1239 It will try to escape the chars needing this, but this is heuristic
1240 based it's impossible to be sure.</P
1241 ><P
1242 ></P
1243 ><DIV
1244 CLASS="INFORMALTABLE"
1245 ><A
1246 NAME="AEN10928"><P
1247 ></P
1248 ><TABLE
1249 BORDER="0"
1250 WIDTH="100%"
1251 BGCOLOR="#FFD0D0"
1252 CELLSPACING="0"
1253 CELLPADDING="4"
1254 CLASS="CALSTABLE"
1255 ><TBODY
1256 ><TR
1257 ><TD
1258 WIDTH="20%"
1259 ALIGN="RIGHT"
1260 VALIGN="TOP"
1261 ><TT
1262 CLASS="PARAMETER"
1263 ><I
1264 >str</I
1265 ></TT
1266 >&nbsp;:</TD
1267 ><TD
1268 WIDTH="80%"
1269 ALIGN="LEFT"
1270 VALIGN="TOP"
1271 >  the string of the URI to escape</TD
1272 ></TR
1273 ><TR
1274 ><TD
1275 WIDTH="20%"
1276 ALIGN="RIGHT"
1277 VALIGN="TOP"
1278 ><SPAN
1279 CLASS="emphasis"
1280 ><I
1281 CLASS="EMPHASIS"
1282 >Returns</I
1283 ></SPAN
1284 > :</TD
1285 ><TD
1286 WIDTH="80%"
1287 ALIGN="LEFT"
1288 VALIGN="TOP"
1289 >an copy of the string, but escaped
1290
1291 25 May 2001
1292 Uses xmlParseURI and xmlURIEscapeStr to try to escape correctly
1293 according to RFC2396.
1294 - Carl Douglas</TD
1295 ></TR
1296 ></TBODY
1297 ></TABLE
1298 ><P
1299 ></P
1300 ></DIV
1301 ></DIV
1302 ><HR><DIV
1303 CLASS="REFSECT2"
1304 ><A
1305 NAME="AEN10941"
1306 ></A
1307 ><H3
1308 ><A
1309 NAME="XMLFREEURI"
1310 ></A
1311 >xmlFreeURI ()</H3
1312 ><TABLE
1313 BORDER="0"
1314 BGCOLOR="#D6E8FF"
1315 WIDTH="100%"
1316 CELLPADDING="6"
1317 ><TR
1318 ><TD
1319 ><PRE
1320 CLASS="PROGRAMLISTING"
1321 >void        xmlFreeURI                      (<A
1322 HREF="libxml-uri.html#XMLURIPTR"
1323 >xmlURIPtr</A
1324 > uri);</PRE
1325 ></TD
1326 ></TR
1327 ></TABLE
1328 ><P
1329 >Free up the xmlURI struct</P
1330 ><P
1331 ></P
1332 ><DIV
1333 CLASS="INFORMALTABLE"
1334 ><A
1335 NAME="AEN10948"><P
1336 ></P
1337 ><TABLE
1338 BORDER="0"
1339 WIDTH="100%"
1340 BGCOLOR="#FFD0D0"
1341 CELLSPACING="0"
1342 CELLPADDING="4"
1343 CLASS="CALSTABLE"
1344 ><TBODY
1345 ><TR
1346 ><TD
1347 WIDTH="20%"
1348 ALIGN="RIGHT"
1349 VALIGN="TOP"
1350 ><TT
1351 CLASS="PARAMETER"
1352 ><I
1353 >uri</I
1354 ></TT
1355 >&nbsp;:</TD
1356 ><TD
1357 WIDTH="80%"
1358 ALIGN="LEFT"
1359 VALIGN="TOP"
1360 >  pointer to an xmlURI</TD
1361 ></TR
1362 ></TBODY
1363 ></TABLE
1364 ><P
1365 ></P
1366 ></DIV
1367 ></DIV
1368 ></DIV
1369 ><DIV
1370 CLASS="NAVFOOTER"
1371 ><BR
1372 CLEAR="all"><BR><TABLE
1373 WIDTH="100%"
1374 BORDER="0"
1375 BGCOLOR="#000000"
1376 CELLPADDING="1"
1377 CELLSPACING="0"
1378 ><TR
1379 ><TD
1380 WIDTH="25%"
1381 BGCOLOR="#C00000"
1382 ALIGN="left"
1383 ><A
1384 HREF="libxml-valid.html"
1385 ><FONT
1386 COLOR="#FFFFFF"
1387 SIZE="3"
1388 ><B
1389 >&#60;&#60;&#60; Previous Page</B
1390 ></FONT
1391 ></A
1392 ></TD
1393 ><TD
1394 WIDTH="25%"
1395 BGCOLOR="#0000C0"
1396 ALIGN="center"
1397 ><FONT
1398 COLOR="#FFFFFF"
1399 SIZE="3"
1400 ><B
1401 ><A
1402 HREF="book1.html"
1403 ><FONT
1404 COLOR="#FFFFFF"
1405 SIZE="3"
1406 ><B
1407 >Home</B
1408 ></FONT
1409 ></A
1410 ></B
1411 ></FONT
1412 ></TD
1413 ><TD
1414 WIDTH="25%"
1415 BGCOLOR="#00C000"
1416 ALIGN="center"
1417 ><FONT
1418 COLOR="#FFFFFF"
1419 SIZE="3"
1420 ><B
1421 ><A
1422 HREF="libxml-lib.html"
1423 ><FONT
1424 COLOR="#FFFFFF"
1425 SIZE="3"
1426 ><B
1427 >Up</B
1428 ></FONT
1429 ></A
1430 ></B
1431 ></FONT
1432 ></TD
1433 ><TD
1434 WIDTH="25%"
1435 BGCOLOR="#C00000"
1436 ALIGN="right"
1437 ><A
1438 HREF="libxml-xmlerror.html"
1439 ><FONT
1440 COLOR="#FFFFFF"
1441 SIZE="3"
1442 ><B
1443 >Next Page &#62;&#62;&#62;</B
1444 ></FONT
1445 ></A
1446 ></TD
1447 ></TR
1448 ><TR
1449 ><TD
1450 COLSPAN="2"
1451 ALIGN="left"
1452 ><FONT
1453 COLOR="#FFFFFF"
1454 SIZE="3"
1455 ><B
1456 >valid</B
1457 ></FONT
1458 ></TD
1459 ><TD
1460 COLSPAN="2"
1461 ALIGN="right"
1462 ><FONT
1463 COLOR="#FFFFFF"
1464 SIZE="3"
1465 ><B
1466 >xmlerror</B
1467 ></FONT
1468 ></TD
1469 ></TR
1470 ></TABLE
1471 ></DIV
1472 ></BODY
1473 ></HTML
1474 >