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