source: icXML/icXML-devel/src/icxercesc/validators/common/Grammar.cpp @ 3153

Last change on this file since 3153 was 3104, checked in by cameron, 6 years ago

Additional files for icXML 0.9

File size: 2.3 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: Grammar.cpp 471747 2006-11-06 14:31:56Z amassari $
20 */
21
22#include <icxercesc/validators/common/Grammar.hpp>
23
24//since we need to dynamically created each and every derivatives
25//during deserialization by XSerializeEngine>>Derivative, we got
26//to include all hpp
27
28#include <xercesc/validators/DTD/DTDGrammar.hpp>
29#include <icxercesc/validators/schema/SchemaGrammar.hpp>
30#include <xercesc/framework/psvi/XSAnnotation.hpp>
31#include <icxmlc/XMLNamespaceResolver.hpp>
32
33XERCES_CPP_NAMESPACE_BEGIN
34
35Grammar::Grammar()
36: fNamespaceId(XMLNamespaceResolver::fUnknownUriId)
37{
38
39}
40
41/***
42 * Support for Serialization/De-serialization
43 ***/
44
45IMPL_XSERIALIZABLE_NOCREATE(Grammar)
46
47void Grammar::serialize(XSerializeEngine&)
48{
49    //no data
50}
51
52void Grammar::storeGrammar(XSerializeEngine&   serEng
53                         , Grammar*  const     grammar)
54{
55    if (grammar)
56    {
57        serEng<<(int) grammar->getGrammarType();
58        serEng<<grammar;
59    }
60    else
61    {
62        serEng<<(int) UnKnown;
63    }
64
65}
66
67Grammar* Grammar::loadGrammar(XSerializeEngine& serEng)
68{
69
70    int type;
71    serEng>>type;
72
73    switch((GrammarType)type)
74    {
75    case DTDGrammarType:
76        DTDGrammar* dtdGrammar;
77        serEng>>dtdGrammar;
78        return dtdGrammar;
79    case SchemaGrammarType:
80        SchemaGrammar* schemaGrammar;
81        serEng>>schemaGrammar;
82        return schemaGrammar;       
83    case UnKnown:
84        return 0;       
85    default: //we treat this same as UnKnown
86        return 0;       
87    }
88
89}
90
91XERCES_CPP_NAMESPACE_END
Note: See TracBrowser for help on using the repository browser.