00001
00002
00003 #include "ACEXML/common/NamespaceSupport.h"
00004 #include "ace/OS_main.h"
00005
00006 int ACE_TMAIN (int, ACE_TCHAR *[])
00007 {
00008 ACEXML_NamespaceSupport xmlns;
00009 if (xmlns.init() == -1)
00010 {
00011 ACE_DEBUG ((LM_DEBUG,
00012 ACE_TEXT ("Error in initializing namespace support.")));
00013 return 1;
00014 }
00015 xmlns.pushContext();
00016 xmlns.declarePrefix(ACE_TEXT (""),
00017 ACE_TEXT ("http://www.w3.org/1999/xhtml"));
00018 xmlns.declarePrefix(ACE_TEXT ("dc"),
00019 ACE_TEXT ("http://www.purl.org/dc#"));
00020 xmlns.declarePrefix(ACE_TEXT ("xc"),
00021 ACE_TEXT ("http://www.purl.org/dc#"));
00022
00023 const ACEXML_Char *lName, *uri;
00024 const ACEXML_Char *n1 = ACE_TEXT ("p");
00025
00026 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("*** Checking processName:\n")));
00027 if (xmlns.processName (n1, uri, lName, 0) != 0)
00028 ACE_DEBUG ((LM_ERROR,
00029 ACE_TEXT ("Fail to resolve namespace name %s\n"),
00030 n1));
00031 else
00032 ACE_DEBUG ((LM_DEBUG,
00033 ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"),
00034 uri, lName, n1));
00035
00036 const ACEXML_Char *n2 = ACE_TEXT ("dc:title");
00037 if (xmlns.processName(n2, uri, lName, 0) != 0)
00038 ACE_DEBUG ((LM_ERROR,
00039 ACE_TEXT ("Fail to resolve namespace name %S\n"),
00040 n2));
00041 else
00042 ACE_DEBUG ((LM_DEBUG,
00043 ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"),
00044 uri, lName, n2));
00045
00046 const ACEXML_Char *n3 = ACE_TEXT ("xml:title");
00047 if (xmlns.processName(n3, uri, lName, 0) != 0)
00048 ACE_DEBUG ((LM_ERROR,
00049 ACE_TEXT ("Fail to resolve namespace name %S\n"),
00050 n3));
00051 else
00052 ACE_DEBUG ((LM_DEBUG,
00053 ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"),
00054 uri, lName, n3));
00055
00056 ACE_DEBUG ((LM_DEBUG,
00057 ACE_TEXT ("\n*** Checking getDeclaredPrefixes\n")));
00058
00059 ACEXML_STR_LIST prefixes;
00060 if (xmlns.getDeclaredPrefixes (prefixes) != 0)
00061 ACE_DEBUG ((LM_ERROR,
00062 ACE_TEXT ("Fail to get a list of declared prefixes\n")));
00063 else
00064 {
00065 ACEXML_STR_LIST::ITERATOR iter = prefixes.begin ();
00066 const ACEXML_Char **prefix = 0;
00067
00068 for (; iter.next (prefix);iter.advance ())
00069 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix));
00070 }
00071
00072 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefix\n")));
00073 const ACEXML_Char *prefix = 0;
00074
00075 if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.purl.org/dc#"))) == 0)
00076 ACE_DEBUG ((LM_ERROR,
00077 ACE_TEXT ("Fail to get prefix of http://www.purl.org/dc#\n")));
00078 else
00079 ACE_DEBUG ((LM_DEBUG,
00080 ACE_TEXT ("Prefix of http://www.purl.org/dc# is %s\n"),
00081 prefix));
00082
00083 if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.w3.org/1999/xhtml"))) == 0)
00084 ACE_DEBUG ((LM_DEBUG,
00085 ACE_TEXT ("Fail to get prefix of http://www.w3.org/1999/xhtml which is okay\n")));
00086 else
00087 ACE_DEBUG ((LM_ERROR,
00088 ACE_TEXT ("ERROR: Prefix of http://www.w3.org/1999/xhtml is %s\n"),
00089 prefix));
00090
00091 if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.w3.org/XML/1998/namespace"))) == 0)
00092 ACE_DEBUG ((LM_ERROR,
00093 ACE_TEXT ("Fail to get prefix of http://www.w3.org/XML/1998/namespace\n")));
00094 else
00095 ACE_DEBUG ((LM_DEBUG,
00096 ACE_TEXT ("Prefix of http://www.w3.org/XML/1998/namespace is %s\n"),
00097 prefix));
00098
00099 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefixes with known URI\n")));
00100 prefixes.reset ();
00101
00102 if (xmlns.getPrefixes (ACE_TEXT ("http://www.purl.org/dc#"), prefixes) != 0)
00103 ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to getPrefixes based on known URI\n")));
00104 else
00105 {
00106 ACEXML_STR_LIST::ITERATOR iter = prefixes.begin ();
00107 const ACEXML_Char **prefix = 0;
00108
00109 for (; iter.next (prefix);iter.advance ())
00110 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix));
00111 }
00112
00113 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefixes\n")));
00114 prefixes.reset ();
00115
00116 if (xmlns.getPrefixes (prefixes) != 0)
00117 ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to getPrefixes\n")));
00118 else
00119 {
00120 ACEXML_STR_LIST::ITERATOR iter = prefixes.begin ();
00121 const ACEXML_Char **prefix = 0;
00122
00123 for (; iter.next (prefix);iter.advance ())
00124 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix));
00125 }
00126
00127 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getURI\n")));
00128 const ACEXML_Char *URI = 0;
00129
00130 if ((URI = xmlns.getURI (ACE_TEXT ("dc"))) == 0)
00131 ACE_DEBUG((LM_ERROR, ACE_TEXT ("Fail to get URI for \"dc\"\n")));
00132 else
00133 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"dc\" is %s\n"), URI));
00134 if ((URI = xmlns.getURI (ACE_TEXT ("xc"))) == 0)
00135 ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get URI for \"xc\"\n")));
00136 else
00137 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"xc\" is %s\n"), URI));
00138 if ((URI = xmlns.getURI (ACE_TEXT ("xml"))) == 0)
00139 ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get URI for \"xml\"\n")));
00140 else
00141 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"xml\" is %s\n"), URI));
00142 if ((URI = xmlns.getURI (ACE_TEXT (""))) == 0)
00143 ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get default namespace URI\n")));
00144 else
00145 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for default namespace is %s\n"), URI));
00146
00147 xmlns.popContext();
00148
00149 return 0;
00150 }