00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __DTDVALIDATOR_H
00018 #define __DTDVALIDATOR_H
00019
00020 #include "nedelements.h"
00021 #include "nedvalidator.h"
00022
00028 class NEDDTDValidator : public NEDValidatorBase
00029 {
00030 protected:
00031 void checkSequence(NEDElement *node, int tags[], char mult[], int n);
00032 void checkChoice(NEDElement *node, int tags[], int n, char mult);
00033 void checkEmpty(NEDElement *node);
00034 void checkRequiredAttribute(NEDElement *node, const char *attr);
00035 void checkEnumeratedAttribute(NEDElement *node, const char *attr, const char *vals[], int n);
00036 void checkNameAttribute(NEDElement *node, const char *attr);
00037 void checkCommentAttribute(NEDElement *node, const char *attr);
00038 void checkNMTokenAttribute(NEDElement *node, const char *attr);
00039 public:
00040 NEDDTDValidator() {}
00041 virtual ~NEDDTDValidator() {}
00042
00043 virtual void validateElement(NedFilesNode *node);
00044 virtual void validateElement(NedFileNode *node);
00045 virtual void validateElement(ImportNode *node);
00046 virtual void validateElement(ImportedFileNode *node);
00047 virtual void validateElement(ChannelNode *node);
00048 virtual void validateElement(ChannelAttrNode *node);
00049 virtual void validateElement(NetworkNode *node);
00050 virtual void validateElement(SimpleModuleNode *node);
00051 virtual void validateElement(CompoundModuleNode *node);
00052 virtual void validateElement(ParamsNode *node);
00053 virtual void validateElement(ParamNode *node);
00054 virtual void validateElement(GatesNode *node);
00055 virtual void validateElement(GateNode *node);
00056 virtual void validateElement(MachinesNode *node);
00057 virtual void validateElement(MachineNode *node);
00058 virtual void validateElement(SubmodulesNode *node);
00059 virtual void validateElement(SubmoduleNode *node);
00060 virtual void validateElement(SubstparamsNode *node);
00061 virtual void validateElement(SubstparamNode *node);
00062 virtual void validateElement(GatesizesNode *node);
00063 virtual void validateElement(GatesizeNode *node);
00064 virtual void validateElement(SubstmachinesNode *node);
00065 virtual void validateElement(SubstmachineNode *node);
00066 virtual void validateElement(ConnectionsNode *node);
00067 virtual void validateElement(ConnectionNode *node);
00068 virtual void validateElement(ConnAttrNode *node);
00069 virtual void validateElement(ForLoopNode *node);
00070 virtual void validateElement(LoopVarNode *node);
00071 virtual void validateElement(DisplayStringNode *node);
00072 virtual void validateElement(ExpressionNode *node);
00073 virtual void validateElement(OperatorNode *node);
00074 virtual void validateElement(FunctionNode *node);
00075 virtual void validateElement(ParamRefNode *node);
00076 virtual void validateElement(IdentNode *node);
00077 virtual void validateElement(ConstNode *node);
00078 virtual void validateElement(CppincludeNode *node);
00079 virtual void validateElement(CppStructNode *node);
00080 virtual void validateElement(CppCobjectNode *node);
00081 virtual void validateElement(CppNoncobjectNode *node);
00082 virtual void validateElement(EnumNode *node);
00083 virtual void validateElement(EnumFieldsNode *node);
00084 virtual void validateElement(EnumFieldNode *node);
00085 virtual void validateElement(MessageNode *node);
00086 virtual void validateElement(ClassNode *node);
00087 virtual void validateElement(StructNode *node);
00088 virtual void validateElement(FieldsNode *node);
00089 virtual void validateElement(FieldNode *node);
00090 virtual void validateElement(PropertiesNode *node);
00091 virtual void validateElement(PropertyNode *node);
00092 virtual void validateElement(UnknownNode *node);
00093 };
00094
00095 #endif
00096