summaryrefslogtreecommitdiff
path: root/ACEXML/tests/NamespaceSupport_Test.cpp
blob: 2632c6dc571127f462ff6aaba90b9ad52fc97065 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
// $Id$

#include "ACEXML/common/NamespaceSupport.h"
#include "ace/OS_main.h"

int ACE_TMAIN (int, ACE_TCHAR *[])
{
  ACEXML_NamespaceSupport xmlns;
  if (xmlns.init() == -1)
    {
      ACE_DEBUG ((LM_DEBUG,
                  ACE_TEXT ("Error in initializing namespace support.")));
      return 1;
    }
  xmlns.pushContext();
  xmlns.declarePrefix(ACE_TEXT (""),
                      ACE_TEXT ("http://www.w3.org/1999/xhtml"));
  xmlns.declarePrefix(ACE_TEXT ("dc"),
                      ACE_TEXT ("http://www.purl.org/dc#"));
  xmlns.declarePrefix(ACE_TEXT ("xc"),
                      ACE_TEXT ("http://www.purl.org/dc#"));

  const ACEXML_Char *lName, *uri;
  const ACEXML_Char *n1 = ACE_TEXT ("p");

  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("*** Checking processName:\n")));
  if (xmlns.processName (n1, uri, lName, 0) != 0)
    ACE_DEBUG ((LM_ERROR,
                ACE_TEXT ("Fail to resolve namespace name %s\n"),
                n1));
  else
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"),
                uri, lName, n1));

  const ACEXML_Char *n2 = ACE_TEXT ("dc:title");
  if (xmlns.processName(n2, uri, lName, 0) != 0)
    ACE_DEBUG ((LM_ERROR,
                ACE_TEXT ("Fail to resolve namespace name %S\n"),
                n2));
  else
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"),
                uri, lName, n2));

  const ACEXML_Char *n3 = ACE_TEXT ("xml:title");
  if (xmlns.processName(n3, uri, lName, 0) != 0)
    ACE_DEBUG ((LM_ERROR,
                ACE_TEXT ("Fail to resolve namespace name %S\n"),
                n3));
  else
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("Namespace URI: %s\nLocal name: %s\nRaw name: %s\n"),
                uri, lName, n3));

  ACE_DEBUG ((LM_DEBUG,
              ACE_TEXT ("\n*** Checking getDeclaredPrefixes\n")));

  ACEXML_STR_LIST prefixes;
  if (xmlns.getDeclaredPrefixes (prefixes) != 0)
    ACE_DEBUG ((LM_ERROR,
                ACE_TEXT ("Fail to get a list of declared prefixes\n")));
  else
    {
      ACEXML_STR_LIST::ITERATOR iter = prefixes.begin ();
      const ACEXML_Char **prefix = 0;

      for (; iter.next (prefix);iter.advance ())
        ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix));
    }

  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefix\n")));
  const ACEXML_Char *prefix = 0;

  if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.purl.org/dc#"))) == 0)
    ACE_DEBUG ((LM_ERROR,
                ACE_TEXT ("Fail to get prefix of http://www.purl.org/dc#\n")));
  else
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("Prefix of http://www.purl.org/dc# is %s\n"),
                prefix));

  if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.w3.org/1999/xhtml"))) == 0)
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("Fail to get prefix of http://www.w3.org/1999/xhtml which is okay\n")));
  else
    ACE_DEBUG ((LM_ERROR,
                ACE_TEXT ("ERROR: Prefix of http://www.w3.org/1999/xhtml is %s\n"),
                prefix));

  if ((prefix = xmlns.getPrefix (ACE_TEXT ("http://www.w3.org/XML/1998/namespace"))) == 0)
    ACE_DEBUG ((LM_ERROR,
                ACE_TEXT ("Fail to get prefix of http://www.w3.org/XML/1998/namespace\n")));
  else
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("Prefix of http://www.w3.org/XML/1998/namespace is %s\n"),
                prefix));

  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefixes with known URI\n")));
  prefixes.reset ();

  if (xmlns.getPrefixes (ACE_TEXT ("http://www.purl.org/dc#"), prefixes) != 0)
    ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to getPrefixes based on known URI\n")));
  else
    {
      ACEXML_STR_LIST::ITERATOR iter = prefixes.begin ();
      const ACEXML_Char **prefix = 0;

      for (; iter.next (prefix);iter.advance ())
        ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix));
    }

  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getPrefixes\n")));
  prefixes.reset ();

  if (xmlns.getPrefixes (prefixes) != 0)
    ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to getPrefixes\n")));
  else
    {
      ACEXML_STR_LIST::ITERATOR iter = prefixes.begin ();
      const ACEXML_Char **prefix = 0;

      for (; iter.next (prefix);iter.advance ())
        ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("prefix: \"%s\"\n"), *prefix));
    }

  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n*** Checking getURI\n")));
  const ACEXML_Char *URI = 0;

  if ((URI = xmlns.getURI (ACE_TEXT ("dc"))) == 0)
    ACE_DEBUG((LM_ERROR, ACE_TEXT ("Fail to get URI for \"dc\"\n")));
  else
    ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"dc\" is %s\n"), URI));
  if ((URI = xmlns.getURI (ACE_TEXT ("xc"))) == 0)
    ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get URI for \"xc\"\n")));
  else
    ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"xc\" is %s\n"), URI));
  if ((URI = xmlns.getURI (ACE_TEXT ("xml"))) == 0)
    ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get URI for \"xml\"\n")));
  else
    ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for \"xml\" is %s\n"), URI));
  if ((URI = xmlns.getURI (ACE_TEXT (""))) == 0)
    ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Fail to get default namespace URI\n")));
  else
    ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("URI for default namespace is %s\n"), URI));

  xmlns.popContext();

  return 0;
}