Added some validation code.
[shibboleth/cpp-xmltooling.git] / xmltooling / signature / KeyInfo.h
1 /*\r
2  *  Copyright 2001-2006 Internet2\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 /**\r
18  * @file KeyInfo.h\r
19  * \r
20  * XMLObjects representing XML Digital Signature, version 20020212, KeyInfo element\r
21  * and related content.\r
22  */\r
23 \r
24 #ifndef __xmltooling_keyinfo_h__\r
25 #define __xmltooling_keyinfo_h__\r
26 \r
27 #include <xmltooling/ElementProxy.h>\r
28 #include <xmltooling/XMLObjectBuilder.h>\r
29 #include <xmltooling/validation/ValidatingXMLObject.h>\r
30 \r
31 namespace xmltooling {\r
32 \r
33     /**\r
34      * XMLObject representing XML Digital Signature, version 20020212, KeyInfo element.\r
35      */\r
36     BEGIN_XMLOBJECT(KeyInfo,ElementProxy);\r
37         DECL_XMLOBJECT_ATTRIB(Id,ID);\r
38         static const XMLCh TYPE_NAME[];\r
39     END_XMLOBJECT;\r
40 \r
41     BEGIN_XMLOBJECTBUILDER(KeyInfo);\r
42     END_XMLOBJECTBUILDER;\r
43 \r
44 #ifdef XMLTOOLING_DEFINE_CONSTANTS\r
45     const XMLCh KeyInfo::LOCAL_NAME[] = {\r
46         chLatin_K, chLatin_e, chLatin_y, chLatin_I, chLatin_n, chLatin_f, chLatin_o, chNull\r
47     }; \r
48     const XMLCh KeyInfo::TYPE_NAME[] = {\r
49         chLatin_K, chLatin_e, chLatin_y, chLatin_I, chLatin_n, chLatin_f, chLatin_o,\r
50         chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull\r
51     }; \r
52     const XMLCh KeyInfo::ID_ATTRIB_NAME[] = {\r
53         chLatin_I, chLatin_d, chNull\r
54     };\r
55 #endif\r
56 \r
57     /**\r
58      * XMLObject representing XML Digital Signature, version 20020212, KeyName element.\r
59      */\r
60     BEGIN_XMLOBJECT(KeyName,XMLObject);\r
61         DECL_XMLOBJECT_CONTENT(Name);\r
62     END_XMLOBJECT;\r
63 \r
64     BEGIN_XMLOBJECTBUILDER(KeyName);\r
65     END_XMLOBJECTBUILDER;\r
66 \r
67 #ifdef XMLTOOLING_DEFINE_CONSTANTS\r
68     const XMLCh KeyName::LOCAL_NAME[] = {\r
69         chLatin_K, chLatin_e, chLatin_y, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull\r
70     }; \r
71 #endif\r
72 \r
73     /**\r
74      * XMLObject representing XML Digital Signature, version 20020212, MgmtData element.\r
75      */\r
76     BEGIN_XMLOBJECT(MgmtData,XMLObject);\r
77         DECL_XMLOBJECT_CONTENT(Data);\r
78     END_XMLOBJECT;\r
79 \r
80     BEGIN_XMLOBJECTBUILDER(MgmtData);\r
81     END_XMLOBJECTBUILDER;\r
82 \r
83 #ifdef XMLTOOLING_DEFINE_CONSTANTS\r
84     const XMLCh MgmtData::LOCAL_NAME[] = {\r
85         chLatin_M, chLatin_g, chLatin_m, chLatin_t, chLatin_D, chLatin_a, chLatin_t, chLatin_a, chNull\r
86     }; \r
87 #endif\r
88 };\r
89 \r
90 #endif /* __xmltooling_keyinfo_h__ */\r