home *** CD-ROM | disk | FTP | other *** search
INI File | 2002-09-15 | 81.5 KB | 3,005 lines |
- [
- '-----------------------------------------------------------
- ' C++ XML Project Template
- '
- ' Copyright (C) 2002 Altova GmbH - The XML Spy Company
- ' All rights reserved.
- '
- ' XML Spy generates C++ classes based on this template.
- ' Refer to the XML Spy Documentation for further details.
- '
- ' http://www.xmlspy.com
- '-----------------------------------------------------------
-
- map type "boolean" to "CSchemaBoolean"
-
- map type "byte" to "CSchemaByte"
- map type "unsignedByte" to "CSchemaUnsignedByte"
- map type "short" to "CSchemaShort"
- map type "unsignedShort" to "CSchemaUnsignedShort"
- map type "int" to "CSchemaInt"
- map type "unsignedInt" to "CSchemaUnsignedInt"
- map type "long" to "CSchemaLong"
- map type "unsignedLong" to "CSchemaUnsignedLong"
-
- map type "integer" to "CSchemaInteger"
- map type "nonPositiveInteger" to "CSchemaNonPositiveInteger"
- map type "negativeInteger" to "CSchemaNegativeInteger"
- map type "positiveInteger" to "CSchemaPositiveInteger"
- map type "nonNegativeInteger" to "CSchemaNonNegativeInteger"
- map type "decimal" to "CSchemaDecimal"
-
- map type "float" to "CSchemaFloat"
- map type "double" to "CSchemaDouble"
-
- map type "duration" to "CSchemaDuration"
- map type "gYear" to "CSchemaYear"
- map type "gDay" to "CSchemaDay"
- map type "gMonth" to "CSchemaMonth"
- map type "gYearMonth" to "CSchemaYearMonth"
- map type "gMonthDay" to "CSchemaMonthDay"
- map type "date" to "CSchemaDate"
- map type "time" to "CSchemaTime"
- map type "dateTime" to "CSchemaDateTime"
-
- map type "string" to "CSchemaString"
- map type "hexBinary" to "CSchemaHexBinary"
- map type "base64Binary" to "CSchemaBase64Binary"
- map type "anyURI" to "CSchemaAnyURI"
- map type "QName" to "CSchemaQName"
- map type "NOTATION" to "CSchemaNotation"
- map type "normalizedString" to "CSchemaNormalizedString"
- map type "token" to "CSchemaToken"
- map type "language" to "CSchemaLanguage"
- map type "IDREF" to "CSchemaIDRef"
- map type "ENTITY" to "CSchemaEntity"
- map type "NMTOKEN" to "CSchemaNMToken"
- map type "Name" to "CSchemaName"
- map type "NCName" to "CSchemaNCName"
- map type "ID" to "CSchemaID"
- map type "IDREFS" to "CSchemaIDRefs"
- map type "ENTITIES" to "CSchemaEntities"
- map type "NMTOKENS" to "CSchemaNMTokens"
-
- default "ValidFirstCharSet" is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
- default "ValidCharSet" is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789"
- default "InvalidCharReplacement" is "_"
- default "AnonTypePrefix" is ""
- default "AnonTypeSuffix" is "Type"
- default "ClassNamePrefix" is "C"
- default "ClassNameSuffix" is ""
-
- reserve "asm"
- reserve "auto"
- reserve "break"
- reserve "case"
- reserve "char"
- reserve "class"
- reserve "const"
- reserve "continue"
- reserve "default"
- reserve "delete"
- reserve "do"
- reserve "double"
- reserve "else"
- reserve "enum"
- reserve "extern"
- reserve "float"
- reserve "for"
- reserve "friend"
- reserve "goto"
- reserve "if"
- reserve "inline"
- reserve "int"
- reserve "long"
- reserve "new"
- reserve "operator"
- reserve "private"
- reserve "protected"
- reserve "public"
- reserve "register"
- reserve "return"
- reserve "short"
- reserve "signed"
- reserve "sizeof"
- reserve "static"
- reserve "struct"
- reserve "switch"
- reserve "template"
- reserve "this"
- reserve "throw"
- reserve "typedef"
- reserve "union"
- reserve "unsigned"
- reserve "virtual"
- reserve "void"
- reserve "volatile"
- reserve "while"
-
- reserve "CNode"
- reserve "CNodeException"
- reserve "CDoc"
- reserve "CFragmentCollection"
-
- create $outputpath & "/" & $module & ".h"
- ]//////////////////////////////////////////////////////////////////////////////
- //
- // [=$module].h
- //
- // Copyright (C) 2002 Altova GmbH - The XML Spy Company
- // All rights reserved.
- //
- // This file was generated by XML Spy.
- // DO NOT ALTER THIS FILE.
- //
- // Refer to the XML Spy Documentation for further details.
- // http://www.xmlspy.com
- //
- //////////////////////////////////////////////////////////////////////////////
-
-
- #pragma once
-
- #include "Node.h"
-
-
- class C[=$module]Doc;
- [
- foreach $namespace in $namespaces
- if $namespace.ContainsPublicClasses and $namespace.Prefix <> ""
- ]
- namespace [=$namespace.Prefix]
- {
- [ endif
- foreach $class in $namespace.Classes
- if not $class.IsInternal
- ]class [=$class.Name];
- [
- endif
- next
- if $namespace.ContainsPublicClasses and $namespace.Prefix <> ""
- ]}
- [
- endif
- next
- ]
-
- class C[=$module]Doc : public CDoc
- {
- protected:
- virtual void DeclareNamespaces(CNode& rNode);
- };
- [
- foreach $class in $classes : if not $class.IsInternal
- if $class.NamespacePrefix <> ""
- ]namespace [=$class.NamespacePrefix][if $class.NamespaceURI <> ""] // URI: [=$class.NamespaceURI][endif]
- {
- [
- endif
- if $class.IsComplexType
- if $class.Base <> "" and $class.BuiltInBase = "" and not $class.IsComplexFromSimpleType
- $baseclass = $class.Base
- else
- $baseclass = "CNode"
- endif
- ]
-
- class [=$class.Name] : public [=$baseclass]
- {
- public:
- [=$class.Name]() : [=$baseclass]() {}
- [=$class.Name](CNode& rParentNode, MSXML2::IXMLDOMNodePtr spThisNode) : [=$baseclass](rParentNode, spThisNode) {}
- [=$class.Name](MSXML2::IXMLDOMDocument2Ptr spDoc) : [=$baseclass](spDoc) {}
- [ if $class.IsComplexFromSimpleType
- ] [=$class.Name]([=$class.Base] Value);
- [=$class.Name](const CString& sValue);
- virtual operator CString();
- [=$class.Base] GetValue();
- [ endif
- foreach $member in $class.Members
- if $member.HasTypeObject
- if $member.TypeObject.NamespacePrefix <> $class.NamespacePrefix
- $QualifiedType = $member.TypeObject.NamespacePrefix & "::" & $member.Type
- else
- $QualifiedType = $member.Type
- endif
- else
- $QualifiedType = $member.Type
- endif
- ]
- //
- // [=$member.SchemaType] [=$member.SchemaName] ([=$member.MinOcc]...[if $member.MaxOcc = -1]unbounded[else][=$member.MaxOcc][endif])
- //
- static int Get[=$member.Name]MinCount();
- static int Get[=$member.Name]MaxCount();
- int Get[=$member.Name]Count();
- bool Has[=$member.Name]();
- void Add[=$member.Name]([=$QualifiedType] [=$member.Name]);
- [=$QualifiedType] Get[=$member.Name]At(int nIndex);
- [=$QualifiedType] Get[=$member.Name]();
- void Remove[=$member.Name]At(int nIndex);
- void Remove[=$member.Name]();
- [ next
- ]};
- [
- else : if $class.IsSimpleType
- if $class.Base = $class.BuiltInBase
- $IsDirectChild = true
- else
- $IsDirectChild = false
- endif
- ]
-
- class [=$class.Name] : public [=$class.Base]
- {
- public:
- [=$class.Name]([=$class.BuiltInBase]::basetype Value);
- [=$class.Name](const CString& sValue);
- void Validate();
- [ foreach $facet in $class.Facets
- if $facet.IsMinLength
- ] virtual int GetMinLength() { return [=$facet.Constraint]; }
- [ else : if $facet.IsMaxLength
- ] virtual int GetMaxLength() { return [=$facet.Constraint]; }
- [ else : if $facet.IsLength
- ] virtual int GetLength() { return [=$facet.Constraint]; }
- [ else : if $facet.IsMinInclusive
- ] virtual [=$class.BuiltInBase] GetMinInclusive() { return [=$facet.Constraint]; }
- [ else : if $facet.IsMinExclusive
- ] virtual [=$class.BuiltInBase] GetMinExclusive() { return [=$facet.Constraint]; }
- [ else : if $facet.IsMaxExclusive
- ] virtual [=$class.BuiltInBase] GetMaxExclusive() { return [=$facet.Constraint]; }
- [ else : if $facet.IsMaxInclusive
- ] virtual [=$class.BuiltInBase] GetMaxInclusive() { return [=$facet.Constraint]; }
- [ else : if $facet.IsTotalDigits
- ] virtual int GetTotalDigits() { return [=$facet.Constraint]; }
- [ else : if $facet.IsFractionDigits
- ] virtual int GetFractionDigits() { return [=$facet.Constraint]; }
- [ else : if $facet.IsWhiteSpace
- ] int GetWhiteSpaceMode() { return [=$facet.Constraint]; }
- [ else : if $facet.IsPattern
- ] CString GetPattern() { return _T("[=$facet.Constraint]"); }
- [ else : if $facet.IsEnumeration
- ] CString GetEnumerationValues() { return _T("['=$facet.Constraint]"); }
- [ endif:endif:endif:endif:endif:endif:endif:endif:endif:endif:endif:endif
- next
- ]};
- [ endif : endif
- if $class.NamespacePrefix <> ""
- ]} // end of namespace [=$class.NamespacePrefix]
- [ endif
- endif : next
- close
- create $outputpath & "/" & $module & ".cpp"
- ]//////////////////////////////////////////////////////////////////////////////
- //
- // [=$module].cpp
- //
- // Copyright (C) 2002 Altova GmbH - The XML Spy Company
- // All rights reserved.
- //
- // This file was generated by XML Spy.
- // DO NOT ALTER THIS FILE.
- //
- // Refer to the XML Spy Documentation for further details.
- // http://www.xmlspy.com
- //
- //////////////////////////////////////////////////////////////////////////////
-
-
- #include "stdafx.h"
- #include "[=$module].h"
-
-
- void C[=$module]Doc::DeclareNamespaces(CNode& rNode)
- {
- [foreach $namespace in $namespaces
- if $namespace.URI <> ""
- ] DeclareNamespace(rNode, _T("[=$namespace.Prefix]"), _T("[=$namespace.URI]"));
- [ endif
- next
- ]}
-
-
- [
- foreach $class in $classes : if not $class.IsInternal
- if $class.NamespacePrefix <> ""
- ]namespace [=$class.NamespacePrefix][if $class.NamespaceURI <> ""] // URI: [=$class.NamespaceURI][endif]
- {
- [ endif
- ]//////////////////////////////////////////////////////////////////////////////
- //
- // class [=$class.Name]
- //
- //////////////////////////////////////////////////////////////////////////////
-
-
- [
- if $class.IsComplexType
- if $class.Base <> "" and $class.BuiltInBase = "" and not $class.IsComplexFromSimpleType
- $baseclass = $class.Base
- else
- $baseclass = "CNode"
- endif
- if $class.IsComplexFromSimpleType
- ][=$class.Name]::[=$class.Name]([=$class.Base] Value)
- {
- m_spNode->text = (LPCTSTR)(CString)Value;
- }
-
-
- [=$class.Name]::[=$class.Name](const CString& sValue)
- {
- m_spNode->text = (LPCTSTR)(CString)[=$class.Base](sValue);
- }
-
-
- [=$class.Name]::operator CString()
- {
- return CString((LPCTSTR)m_spNode->text);
- }
-
-
- [=$class.Base] [=$class.Name]::GetValue()
- {
- return CString((LPCTSTR)m_spNode->text);
- }
-
-
- [ endif
- foreach $member in $class.Members
- if $member.HasTypeObject
- if $member.TypeObject.NamespacePrefix <> $class.NamespacePrefix
- $QualifiedType = $member.TypeObject.NamespacePrefix & "::" & $member.Type
- else
- $QualifiedType = $member.Type
- endif
- else
- $QualifiedType = $member.Type
- endif
- ]int [=$class.Name]::Get[=$member.Name]MinCount()
- {
- return [=$member.MinOcc];
- }
-
-
- int [=$class.Name]::Get[=$member.Name]MaxCount()
- {
- return [if $member.MaxOcc = -1]INT_MAX[else][=$member.MaxOcc][endif];
- }
-
-
- int [=$class.Name]::Get[=$member.Name]Count()
- {
- return ChildCount([=$member.NodeType], _T("[=$member.NamespaceURI]"), _T("[=$member.Name]"));
- }
-
-
- bool [=$class.Name]::Has[=$member.Name]()
- {
- return Get[=$member.Name]Count() > 0;
- }
-
-
- void [=$class.Name]::Add[=$member.Name]([=$QualifiedType] [=$member.Name])
- {
- [ if $member.IsSimpleType
- if $member.IsBuiltinType
- $TmpSchemaType = $member.SchemaType
- else
- if $member.HasTypeObject
- $TmpSchemaType = $member.TypeObject.BuiltInSchemaBase
- else
- $TmpSchemaType = $member.SchemaType
- endif
- endif
- ] AppendChild([=$member.NodeType], _T("[=$member.NamespaceURI]"), _T("[=$member.Name]"), [=$member.Name]);
- [ else
- ] AppendChildElement(_T("[=$member.NamespaceURI]"), _T("[=$member.Name]"), &[=$member.Name]);
- [ endif
- ]}
-
-
- [=$QualifiedType] [=$class.Name]::Get[=$member.Name]At(int nIndex)
- {
- [ if $member.IsSimpleType
- ] return CString((LPCTSTR)GetChildAt([=$member.NodeType], _T("[=$member.NamespaceURI]"), _T("[=$member.Name]"), nIndex)->text);
- [ else
- ] return [=$QualifiedType](*this, GetChildAt([=$member.NodeType], _T("[=$member.NamespaceURI]"), _T("[=$member.Name]"), nIndex));
- [endif
- ]}
-
-
- [=$QualifiedType] [=$class.Name]::Get[=$member.Name]()
- {
- return Get[=$member.Name]At(0);
- }
-
-
- void [=$class.Name]::Remove[=$member.Name]At(int nIndex)
- {
- RemoveChildAt([=$member.NodeType], _T("[=$member.NamespaceURI]"), _T("[=$member.Name]"), nIndex);
- }
-
-
- void [=$class.Name]::Remove[=$member.Name]()
- {
- [ if $member.MaxOcc > 1
- ] Remove[=$member.Name]At(0);
- [ else
- ] while (Has[=$member.Name]())
- Remove[=$member.Name]At(0);
- [endif
- ]}
-
- [ next
- else : if $class.IsSimpleType
- if $class.Base = $class.BuiltInBase
- $IsDirectChild = true
- else
- $IsDirectChild = false
- endif
- ][=$class.Name]::[=$class.Name]([=$class.BuiltInBase]::basetype Value) : [=$class.Base](Value)
- {
- Validate();
- }
-
-
- [=$class.Name]::[=$class.Name](const CString& sValue) : [=$class.Base](sValue)
- {
- Validate();
- }
-
-
- void [=$class.Name]::Validate()
- {
- [ if not $IsDirectChild
- ] //[=$class.Base]::Validate();
- [ endif
- foreach $facet in $class.Facets
- if $facet.IsMinLength
- ] if( m_Value.GetLength() < GetMinLength() )
- throw CNodeException(CNodeException::eError1, _T("Validation error"));
- [ else:if $facet.IsMaxLength
- ] if( m_Value.GetLength() > GetMaxLength() )
- throw CNodeException(CNodeException::eError1, _T("Validation error"));
- [ else:if $facet.IsLength
- ] if( m_Value.GetLength() != GetLength() )
- throw CNodeException(CNodeException::eError1, _T("Validation error"));
- [ else:if $facet.IsMinInclusive
- ] if( m_Value < GetMinInclusive() )
- throw CNodeException(CNodeException::eError1, _T("Validation error"));
- [ else:if $facet.IsMinExclusive
- ] if( m_Value <= GetMinExclusive() )
- throw CNodeException(CNodeException::eError1, _T("Validation error"));
- [ else:if $facet.IsMaxExclusive
- ] if( m_Value >= GetMaxExclusive() )
- throw CNodeException(CNodeException::eError1, _T("Validation error"));
- [ else:if $facet.IsMaxInclusive
- ] if( m_Value > GetMaxInclusive() )
- throw CNodeException(CNodeException::eError1, _T("Validation error"));
- [ else:if $facet.IsTotalDigits
-
- else:if $facet.IsFractionDigits
-
- else:if $facet.IsWhiteSpace
-
- else:if $facet.IsPattern
-
- else:if $facet.IsEnumeration
-
- endif:endif:endif:endif:endif:endif:endif:endif:endif:endif:endif:endif
- next
- ]}
-
-
- [ endif : endif
- if $class.NamespacePrefix <> ""
- ]} // end of namespace [=$class.NamespacePrefix]
- [ endif
- endif : next
- close
- create $outputpath & "/" & $module & "Test.cpp"
- ]//////////////////////////////////////////////////////////////////////////////
- //
- // [=$module]Test.cpp
- //
- // Copyright (C) 2002 Altova GmbH - The XML Spy Company
- // All rights reserved.
- //
- // This file was generated by XML Spy.
- // DO NOT ALTER THIS FILE.
- //
- // Refer to the XML Spy Documentation for further details.
- // http://www.xmlspy.com
- //
- //////////////////////////////////////////////////////////////////////////////
-
-
- #include "stdafx.h"
- #include "[=$module].h"
- #include <atlconv.h>
- #include <iostream>
-
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE\[\] = __FILE__;
- #endif
-
-
- using namespace std;
-
- ostream& operator<<(ostream& out, LPCWSTR szWide)
- {
- USES_CONVERSION;
- return out << W2A(szWide);
- }
-
- ostream& operator<<(ostream& out, const CString& sText)
- {
- return operator<<(out, (LPCTSTR)sText);
- }
-
-
- CWinApp theApp;
-
-
- void Example()
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // TODO:
- // Insert your code here...
- //
- // EXAMPLE:
- // C[=$module]Doc doc;
- // CYourRootElementType root = doc.Load(_T("[=$module].xml"));
- // ...
- // doc.Save(_T("[=$module].xml"), root);
- //
- //////////////////////////////////////////////////////////////////////////
- }
-
-
- int _tmain(int argc, TCHAR* argv\[\], TCHAR* envp\[\])
- {
- cout << _T("[=$module] Test Application") << endl;
-
- if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
- {
- cerr << _T("Fatal Error: MFC initialization failed") << endl;
- return 1;
- }
-
- try
- {
- CoInitialize(NULL);
- Example();
- CoUninitialize();
- return 0;
- }
- catch (CNodeException& e)
- {
- cerr << _T("Error: ") << e.GetMessage() << endl;
- return 2;
- }
- catch (_com_error& e)
- {
- cerr << _T("COM-Error: ") << e.ErrorMessage() << endl;
- return 3;
- }
- catch (...)
- {
- cerr << _T("Unknown error") << endl;
- return 4;
- }
- }
- [
- close
- create $outputpath & "/" & $module & ".dsw"
- ]Microsoft Developer Studio Workspace File, Format Version 6.00
- # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
- ###############################################################################
-
- Project: "[=$module]"=./[=$module].dsp - Package Owner=<4>
-
- Package=<5>
- {{{
- }}}
-
- Package=<4>
- {{{
- }}}
-
- ###############################################################################
-
- Global:
-
- Package=<5>
- {{{
- }}}
-
- Package=<3>
- {{{
- }}}
-
- ###############################################################################
-
- [
- close
- create $outputpath & "/" & $module & ".dsp"
- ]# Microsoft Developer Studio Project File - Name="[=$module]" - Package Owner=<4>
- # Microsoft Developer Studio Generated Build File, Format Version 6.00
- # ** DO NOT EDIT **
-
- # TARGTYPE "Win32 (x86) Console Application" 0x0103
-
- CFG=[=$module] - Win32 Unicode Debug
- !MESSAGE This is not a valid makefile. To build this project using NMAKE,
- !MESSAGE use the Export Makefile command and run
- !MESSAGE
- !MESSAGE NMAKE /f "[=$module].mak".
- !MESSAGE
- !MESSAGE You can specify a configuration when running NMAKE
- !MESSAGE by defining the macro CFG on the command line. For example:
- !MESSAGE
- !MESSAGE NMAKE /f "[=$module].mak" CFG="[=$module] - Win32 Unicode Debug"
- !MESSAGE
- !MESSAGE Possible choices for configuration are:
- !MESSAGE
- !MESSAGE "[=$module] - Win32 Release" (based on "Win32 (x86) Console Application")
- !MESSAGE "[=$module] - Win32 Debug" (based on "Win32 (x86) Console Application")
- !MESSAGE "[=$module] - Win32 Unicode Debug" (based on "Win32 (x86) Console Application")
- !MESSAGE "[=$module] - Win32 Unicode Release" (based on "Win32 (x86) Console Application")
- !MESSAGE
-
- # Begin Project
- # PROP AllowPerConfigDependencies 0
- # PROP Scc_ProjName ""
- # PROP Scc_LocalPath ""
- CPP=cl.exe
- RSC=rc.exe
-
- !IF "$(CFG)" == "[=$module] - Win32 Release"
-
- # PROP BASE Use_MFC 2
- # PROP BASE Use_Debug_Libraries 0
- # PROP BASE Output_Dir "Release"
- # PROP BASE Intermediate_Dir "Release"
- # PROP BASE Target_Dir ""
- # PROP Use_MFC 2
- # PROP Use_Debug_Libraries 0
- # PROP Output_Dir "Release"
- # PROP Intermediate_Dir "Release"
- # PROP Target_Dir ""
- # ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
- # ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
- # ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
- # ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- # ADD BASE BSC32 /nologo
- # ADD BSC32 /nologo
- LINK32=link.exe
- # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
- # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Debug"
-
- # PROP BASE Use_MFC 2
- # PROP BASE Use_Debug_Libraries 1
- # PROP BASE Output_Dir "Debug"
- # PROP BASE Intermediate_Dir "Debug"
- # PROP BASE Target_Dir ""
- # PROP Use_MFC 2
- # PROP Use_Debug_Libraries 1
- # PROP Output_Dir "Debug"
- # PROP Intermediate_Dir "Debug"
- # PROP Target_Dir ""
- # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
- # ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
- # ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
- # ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- # ADD BASE BSC32 /nologo
- # ADD BSC32 /nologo
- LINK32=link.exe
- # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
- # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Unicode Debug"
-
- # PROP BASE Use_MFC 2
- # PROP BASE Use_Debug_Libraries 1
- # PROP BASE Output_Dir "UnicodeDebug"
- # PROP BASE Intermediate_Dir "UnicodeDebug"
- # PROP BASE Target_Dir ""
- # PROP Use_MFC 2
- # PROP Use_Debug_Libraries 1
- # PROP Output_Dir "UnicodeDebug"
- # PROP Intermediate_Dir "UnicodeDebug"
- # PROP Target_Dir ""
- # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
- # ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
- # ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
- # ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- # ADD BASE BSC32 /nologo
- # ADD BSC32 /nologo
- LINK32=link.exe
- # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
- # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Unicode Release"
-
- # PROP BASE Use_MFC 2
- # PROP BASE Use_Debug_Libraries 0
- # PROP BASE Output_Dir "UnicodeRelease"
- # PROP BASE Intermediate_Dir "UnicodeRelease"
- # PROP BASE Target_Dir ""
- # PROP Use_MFC 2
- # PROP Use_Debug_Libraries 0
- # PROP Output_Dir "UnicodeRelease"
- # PROP Intermediate_Dir "UnicodeRelease"
- # PROP Target_Dir ""
- # ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
- # ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
- # ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
- # ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- # ADD BASE BSC32 /nologo
- # ADD BSC32 /nologo
- LINK32=link.exe
- # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
- # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
- !ENDIF
-
- # Begin Target
-
- # Name "[=$module] - Win32 Release"
- # Name "[=$module] - Win32 Debug"
- # Name "[=$module] - Win32 Unicode Debug"
- # Name "[=$module] - Win32 Unicode Release"
- # Begin Group "Source Files"
-
- # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
- # Begin Source File
-
- SOURCE=./[=$module].cpp
- # End Source File
- # Begin Source File
-
- SOURCE=./[=$module].rc
- # End Source File
- # Begin Source File
-
- SOURCE=./[=$module]Test.cpp
- # End Source File
- # Begin Source File
-
- SOURCE=./Node.cpp
- # End Source File
- # Begin Source File
-
- SOURCE=./StdAfx.cpp
- # ADD CPP /Yc"stdafx.h"
- # End Source File
- # End Group
- # Begin Group "Header Files"
-
- # PROP Default_Filter "h;hpp;hxx;hm;inl"
- # Begin Source File
-
- SOURCE=./[=$module].h
- # End Source File
- # Begin Source File
-
- SOURCE=./Node.h
- # End Source File
- # Begin Source File
-
- SOURCE=./Resource.h
- # End Source File
- # Begin Source File
-
- SOURCE=./StdAfx.h
- # End Source File
- # End Group
- # Begin Group "Resource Files"
-
- # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
- # End Group
- # Begin Source File
-
- SOURCE=./ReadMe.txt
- # End Source File
- # End Target
- # End Project
-
- [
- close
- create $outputpath & "/" & $module & ".mak"
- ]# Microsoft Developer Studio Generated NMAKE File, Based on [=$module].dsp
- !IF "$(CFG)" == ""
- CFG=[=$module] - Win32 Unicode Debug
- !MESSAGE No configuration specified. Defaulting to [=$module] - Win32 Unicode Debug.
- !ENDIF
-
- !IF "$(CFG)" != "[=$module] - Win32 Release" && "$(CFG)" != "[=$module] - Win32 Debug" && "$(CFG)" != "[=$module] - Win32 Unicode Debug" && "$(CFG)" != "[=$module] - Win32 Unicode Release"
- !MESSAGE Invalid configuration "$(CFG)" specified.
- !MESSAGE You can specify a configuration when running NMAKE
- !MESSAGE by defining the macro CFG on the command line. For example:
- !MESSAGE
- !MESSAGE NMAKE /f "[=$module].mak" CFG="[=$module] - Win32 Unicode Debug"
- !MESSAGE
- !MESSAGE Possible choices for configuration are:
- !MESSAGE
- !MESSAGE "[=$module] - Win32 Release" (based on "Win32 (x86) Console Application")
- !MESSAGE "[=$module] - Win32 Debug" (based on "Win32 (x86) Console Application")
- !MESSAGE "[=$module] - Win32 Unicode Debug" (based on "Win32 (x86) Console Application")
- !MESSAGE "[=$module] - Win32 Unicode Release" (based on "Win32 (x86) Console Application")
- !MESSAGE
- !ERROR An invalid configuration is specified.
- !ENDIF
-
- !IF "$(OS)" == "Windows_NT"
- NULL=
- !ELSE
- NULL=nul
- !ENDIF
-
- !IF "$(CFG)" == "[=$module] - Win32 Release"
-
- OUTDIR=./Release
- INTDIR=./Release
- # Begin Custom Macros
- OutDir=./Release
- # End Custom Macros
-
- ALL : "$(OUTDIR)/[=$module].exe"
-
-
- CLEAN :
- -@erase "$(INTDIR)/[=$module].obj"
- -@erase "$(INTDIR)/[=$module].pch"
- -@erase "$(INTDIR)/[=$module].res"
- -@erase "$(INTDIR)/[=$module]Test.obj"
- -@erase "$(INTDIR)/Node.obj"
- -@erase "$(INTDIR)/StdAfx.obj"
- -@erase "$(INTDIR)/vc60.idb"
- -@erase "$(OUTDIR)/[=$module].exe"
-
- "$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
- CPP=cl.exe
- CPP_PROJ=/nologo /MD /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yu"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /c
-
- .c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- RSC=rc.exe
- RSC_PROJ=/l 0x409 /fo"$(INTDIR)/[=$module].res" /d "NDEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- BSC32_FLAGS=/nologo /o"$(OUTDIR)/[=$module].bsc"
- BSC32_SBRS= \\
-
- LINK32=link.exe
- LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)/[=$module].pdb" /machine:I386 /out:"$(OUTDIR)/[=$module].exe"
- LINK32_OBJS= \\
- "$(INTDIR)/[=$module].obj" \\
- "$(INTDIR)/[=$module]Test.obj" \\
- "$(INTDIR)/Node.obj" \\
- "$(INTDIR)/StdAfx.obj" \\
- "$(INTDIR)/[=$module].res"
-
- "$(OUTDIR)/[=$module].exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
- <<
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Debug"
-
- OUTDIR=./Debug
- INTDIR=./Debug
- # Begin Custom Macros
- OutDir=./Debug
- # End Custom Macros
-
- ALL : "$(OUTDIR)/[=$module].exe"
-
-
- CLEAN :
- -@erase "$(INTDIR)/[=$module].obj"
- -@erase "$(INTDIR)/[=$module].pch"
- -@erase "$(INTDIR)/[=$module].res"
- -@erase "$(INTDIR)/[=$module]Test.obj"
- -@erase "$(INTDIR)/Node.obj"
- -@erase "$(INTDIR)/StdAfx.obj"
- -@erase "$(INTDIR)/vc60.idb"
- -@erase "$(INTDIR)/vc60.pdb"
- -@erase "$(OUTDIR)/[=$module].exe"
- -@erase "$(OUTDIR)/[=$module].ilk"
- -@erase "$(OUTDIR)/[=$module].pdb"
-
- "$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
- CPP=cl.exe
- CPP_PROJ=/nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yu"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /GZ /c
-
- .c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- RSC=rc.exe
- RSC_PROJ=/l 0x409 /fo"$(INTDIR)/[=$module].res" /d "_DEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- BSC32_FLAGS=/nologo /o"$(OUTDIR)/[=$module].bsc"
- BSC32_SBRS= \\
-
- LINK32=link.exe
- LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)/[=$module].pdb" /debug /machine:I386 /out:"$(OUTDIR)/[=$module].exe" /pdbtype:sept
- LINK32_OBJS= \\
- "$(INTDIR)/[=$module].obj" \\
- "$(INTDIR)/[=$module]Test.obj" \\
- "$(INTDIR)/Node.obj" \\
- "$(INTDIR)/StdAfx.obj" \\
- "$(INTDIR)/[=$module].res"
-
- "$(OUTDIR)/[=$module].exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
- <<
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Unicode Debug"
-
- OUTDIR=./UnicodeDebug
- INTDIR=./UnicodeDebug
- # Begin Custom Macros
- OutDir=./UnicodeDebug
- # End Custom Macros
-
- ALL : "$(OUTDIR)/[=$module].exe"
-
-
- CLEAN :
- -@erase "$(INTDIR)/[=$module].obj"
- -@erase "$(INTDIR)/[=$module].pch"
- -@erase "$(INTDIR)/[=$module].res"
- -@erase "$(INTDIR)/[=$module]Test.obj"
- -@erase "$(INTDIR)/Node.obj"
- -@erase "$(INTDIR)/StdAfx.obj"
- -@erase "$(INTDIR)/vc60.idb"
- -@erase "$(INTDIR)/vc60.pdb"
- -@erase "$(OUTDIR)/[=$module].exe"
- -@erase "$(OUTDIR)/[=$module].ilk"
- -@erase "$(OUTDIR)/[=$module].pdb"
-
- "$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
- CPP=cl.exe
- CPP_PROJ=/nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yu"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /GZ /c
-
- .c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- RSC=rc.exe
- RSC_PROJ=/l 0x409 /fo"$(INTDIR)/[=$module].res" /d "_DEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- BSC32_FLAGS=/nologo /o"$(OUTDIR)/[=$module].bsc"
- BSC32_SBRS= \\
-
- LINK32=link.exe
- LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)/[=$module].pdb" /debug /machine:I386 /out:"$(OUTDIR)/[=$module].exe" /pdbtype:sept
- LINK32_OBJS= \\
- "$(INTDIR)/[=$module].obj" \\
- "$(INTDIR)/[=$module]Test.obj" \\
- "$(INTDIR)/Node.obj" \\
- "$(INTDIR)/StdAfx.obj" \\
- "$(INTDIR)/[=$module].res"
-
- "$(OUTDIR)/[=$module].exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
- <<
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Unicode Release"
-
- OUTDIR=./UnicodeRelease
- INTDIR=./UnicodeRelease
- # Begin Custom Macros
- OutDir=./UnicodeRelease
- # End Custom Macros
-
- ALL : "$(OUTDIR)/[=$module].exe"
-
-
- CLEAN :
- -@erase "$(INTDIR)/[=$module].obj"
- -@erase "$(INTDIR)/[=$module].pch"
- -@erase "$(INTDIR)/[=$module].res"
- -@erase "$(INTDIR)/[=$module]Test.obj"
- -@erase "$(INTDIR)/Node.obj"
- -@erase "$(INTDIR)/StdAfx.obj"
- -@erase "$(INTDIR)/vc60.idb"
- -@erase "$(OUTDIR)/[=$module].exe"
-
- "$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
- CPP=cl.exe
- CPP_PROJ=/nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yu"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /c
-
- .c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- .cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
- <<
-
- RSC=rc.exe
- RSC_PROJ=/l 0x409 /fo"$(INTDIR)/[=$module].res" /d "NDEBUG" /d "_AFXDLL"
- BSC32=bscmake.exe
- BSC32_FLAGS=/nologo /o"$(OUTDIR)/[=$module].bsc"
- BSC32_SBRS= \\
-
- LINK32=link.exe
- LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)/[=$module].pdb" /machine:I386 /out:"$(OUTDIR)/[=$module].exe"
- LINK32_OBJS= \\
- "$(INTDIR)/[=$module].obj" \\
- "$(INTDIR)/[=$module]Test.obj" \\
- "$(INTDIR)/Node.obj" \\
- "$(INTDIR)/StdAfx.obj" \\
- "$(INTDIR)/[=$module].res"
-
- "$(OUTDIR)/[=$module].exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
- <<
-
- !ENDIF
-
-
- !IF "$(NO_EXTERNAL_DEPS)" != "1"
- !IF EXISTS("[=$module].dep")
- !INCLUDE "[=$module].dep"
- !ELSE
- !MESSAGE Warning: cannot find "[=$module].dep"
- !ENDIF
- !ENDIF
-
-
- !IF "$(CFG)" == "[=$module] - Win32 Release" || "$(CFG)" == "[=$module] - Win32 Debug" || "$(CFG)" == "[=$module] - Win32 Unicode Debug" || "$(CFG)" == "[=$module] - Win32 Unicode Release"
- SOURCE=./[=$module].cpp
-
- "$(INTDIR)/[=$module].obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)/[=$module].pch"
-
-
- SOURCE=./[=$module].rc
-
- "$(INTDIR)/[=$module].res" : $(SOURCE) "$(INTDIR)"
- $(RSC) $(RSC_PROJ) $(SOURCE)
-
-
- SOURCE=./[=$module]Test.cpp
-
- "$(INTDIR)/[=$module]Test.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)/[=$module].pch"
-
-
- SOURCE=./Node.cpp
-
- "$(INTDIR)/Node.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)/[=$module].pch"
-
-
- SOURCE=./StdAfx.cpp
-
- !IF "$(CFG)" == "[=$module] - Win32 Release"
-
- CPP_SWITCHES=/nologo /MD /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yc"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /c
-
- "$(INTDIR)/StdAfx.obj" "$(INTDIR)/[=$module].pch" : $(SOURCE) "$(INTDIR)"
- $(CPP) @<<
- $(CPP_SWITCHES) $(SOURCE)
- <<
-
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Debug"
-
- CPP_SWITCHES=/nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yc"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /GZ /c
-
- "$(INTDIR)/StdAfx.obj" "$(INTDIR)/[=$module].pch" : $(SOURCE) "$(INTDIR)"
- $(CPP) @<<
- $(CPP_SWITCHES) $(SOURCE)
- <<
-
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Unicode Debug"
-
- CPP_SWITCHES=/nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yc"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /GZ /c
-
- "$(INTDIR)/StdAfx.obj" "$(INTDIR)/[=$module].pch" : $(SOURCE) "$(INTDIR)"
- $(CPP) @<<
- $(CPP_SWITCHES) $(SOURCE)
- <<
-
-
- !ELSEIF "$(CFG)" == "[=$module] - Win32 Unicode Release"
-
- CPP_SWITCHES=/nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /D "_AFXDLL" /Fp"$(INTDIR)/[=$module].pch" /Yc"stdafx.h" /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /FD /c
-
- "$(INTDIR)/StdAfx.obj" "$(INTDIR)/[=$module].pch" : $(SOURCE) "$(INTDIR)"
- $(CPP) @<<
- $(CPP_SWITCHES) $(SOURCE)
- <<
-
-
- !ENDIF
-
-
- !ENDIF
-
- [
- close
- create $outputpath & "/" & $module & ".dep"
- ]# Microsoft Developer Studio Generated Dependency File, included by CompAnon.mak
-
- [=$module].cpp : \\
- "[=$module].h"\\
- "StdAfx.h"
-
- [=$module]Test.cpp : \\
- "[=$module].h"\\
- "StdAfx.h"
-
- StdAfx.cpp : \\
- "StdAfx.h"
- [
- close
- create $outputpath & "/StdAfx.h"
- ]// stdafx.h : include file for standard system include files,
- // or project specific include files that are used frequently, but
- // are changed infrequently
- //
-
- #if !defined(AFX_STDAFX_H__38C3B4DE_1B50_4E1F_B080_C86F831304CA__INCLUDED_)
- #define AFX_STDAFX_H__38C3B4DE_1B50_4E1F_B080_C86F831304CA__INCLUDED_
-
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
-
- #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
-
- #include <afx.h>
- #include <afxwin.h> // MFC core and standard components
- #include <afxext.h> // MFC extensions
- #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
- #ifndef _AFX_NO_AFXCMN_SUPPORT
- #include <afxcmn.h> // MFC support for Windows Common Controls
- #endif // _AFX_NO_AFXCMN_SUPPORT
-
- #include <iostream>
-
- // TODO: reference additional headers your program requires here
-
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
- #endif // !defined(AFX_STDAFX_H__38C3B4DE_1B50_4E1F_B080_C86F831304CA__INCLUDED_)
- [
- close
- create $outputpath & "/StdAfx.cpp"
- ]// stdafx.cpp : source file that includes just the standard includes
- // [=$module].pch will be the pre-compiled header
- // stdafx.obj will contain the pre-compiled type information
-
- #include "stdafx.h"
-
- // TODO: reference any additional headers you need in STDAFX.H
- // and not in this file
- [
- close
- create $outputpath & "/Resource.h"
- ]
- //{{NO_DEPENDENCIES}}
- // Microsoft Visual C++ generated include file.
- // Used by [=$module].rc
- //
- #define IDS_HELLO 1
-
- // Next default values for new objects
- //
- #ifdef APSTUDIO_INVOKED
- #ifndef APSTUDIO_READONLY_SYMBOLS
- #define _APS_NEXT_RESOURCE_VALUE 101
- #define _APS_NEXT_COMMAND_VALUE 40001
- #define _APS_NEXT_CONTROL_VALUE 1000
- #define _APS_NEXT_SYMED_VALUE 101
- #endif
- #endif
- [
- close
- create $outputpath & "/" & $module & ".rc"
- ]
- //Microsoft Visual C++ generated resource script.
- //
- #include "resource.h"
-
- #define APSTUDIO_READONLY_SYMBOLS
- /////////////////////////////////////////////////////////////////////////////
- //
- // Generated from the TEXTINCLUDE 2 resource.
- //
- #include "afxres.h"
-
- /////////////////////////////////////////////////////////////////////////////
- #undef APSTUDIO_READONLY_SYMBOLS
-
- #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
- #ifdef _WIN32
- LANGUAGE 9, 1
- #pragma code_page(1252)
- #endif //_WIN32
-
- #ifdef APSTUDIO_INVOKED
- /////////////////////////////////////////////////////////////////////////////
- //
- // TEXTINCLUDE
- //
-
- 1 TEXTINCLUDE DISCARDABLE
- BEGIN
- "resource.h\\0"
- END
-
- 2 TEXTINCLUDE DISCARDABLE
- BEGIN
- "#include ""afxres.h""\\r\\n"
- "\\0"
- END
-
- 3 TEXTINCLUDE DISCARDABLE
- BEGIN
- "\\r\\n"
- "\\0"
- END
-
- #endif // APSTUDIO_INVOKED
-
-
- /////////////////////////////////////////////////////////////////////////////
- //
- // String Table
- //
-
- STRINGTABLE DISCARDABLE
- BEGIN
- IDS_HELLO "Hello from MFC!"
- END
-
- #endif
- /////////////////////////////////////////////////////////////////////////////
-
-
-
- #ifndef APSTUDIO_INVOKED
- /////////////////////////////////////////////////////////////////////////////
- //
- // Generated from the TEXTINCLUDE 3 resource.
- //
-
-
- /////////////////////////////////////////////////////////////////////////////
- #endif // not APSTUDIO_INVOKED
- [
- close
- create $outputpath & "/Node.h"
- ]
- #pragma once
-
-
- #import "msxml4.dll" named_guids
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CNodeException
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CNodeException
- {
- public:
- typedef enum
- {
- eError1,
- eError2
- } ECode;
-
- CNodeException(int nCode, const CString& sMessage);
- int GetCode();
- CString GetMessage();
-
- protected:
- int m_nCode;
- CString m_sMessage;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CFragmentCollection
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CFragmentCollection
- {
- public:
- static MSXML2::IXMLDOMDocument2Ptr GetDocument();
- static MSXML2::IXMLDOMNodePtr CreateFragment();
- static void CheckDocumentCounter();
-
- protected:
- static MSXML2::IXMLDOMDocument2Ptr m_spDocument;
- static MSXML2::IXMLDOMDocumentFragmentPtr m_spFragment;
- static int m_nTmpNameCounter;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CNode
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CNode
- {
- public:
- typedef enum {
- Element,
- Attribute
- } ENodeType;
-
- protected:
- CNode();
- CNode(CNode& rParentNode, MSXML2::IXMLDOMNodePtr spThisNode);
- CNode(MSXML2::IXMLDOMDocument2Ptr& rspDocument);
-
- public:
- virtual ~CNode();
-
- CString Transform(const CString& sXSLTFilename);
-
- CString GetNodeName() const { return (LPCTSTR)m_spNode->nodeName; }
- CString GetNodeText() const { return (LPCTSTR)m_spNode->text; }
- CString ToXMLString() const { return (LPCTSTR)m_spNode->xml; }
-
- protected:
- friend class CDoc;
-
- void DeclareNamespace(const CString& sPrefix, const CString& sURI);
- MSXML2::IXMLDOMNodePtr CreateNode(ENodeType eNodeType, const CString& sNamespaceURI, LPCTSTR szName);
- bool CompareChildName( MSXML2::IXMLDOMNodePtr spChild, const CString& sNamespaceURI, const CString& sName );
- int ChildCount(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName);
- MSXML2::IXMLDOMNodePtr AppendChild(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, const CString& sValue);
- MSXML2::IXMLDOMNodePtr AppendChildAttribute(MSXML2::IXMLDOMNodePtr spNode, const CString& sNamespaceURI, const CString& sName, const CString& sValue);
- MSXML2::IXMLDOMNodePtr AppendChildElement(const CString& sNamespaceURI, const CString& sElement, CNode* pNode, MSXML2::IXMLDOMNodePtr spHostNode = MSXML2::IXMLDOMNodePtr());
- MSXML2::IXMLDOMNodePtr RemoveChildAt(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, int nIndex);
- MSXML2::IXMLDOMNodePtr ReplaceChildAt(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, int nIndex, const CString& sValue);
- MSXML2::IXMLDOMNodePtr GetChildAt(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, int nIndex);
- MSXML2::IXMLDOMNodePtr SetChild(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, const CString& sValue);
-
- MSXML2::IXMLDOMDocument2Ptr m_spDocument;
- MSXML2::IXMLDOMNodePtr m_spNode;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CDoc
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CDoc
- {
- public:
- MSXML2::IXMLDOMDocument2Ptr Load(const CString& sFilename);
-
- void SetRootElementName(CString sName, CString sNamespaceURI);
- void SetSchemaLocation(const CString& sSchemaLocation);
-
- void Save(const CString& sFilename, CNode& rNode);
- void Validate(CNode& rNode);
-
- protected:
- void FinalizeRootElement(CNode& rNode);
- void InternalSetSchemaLocation(CNode& rNode);
- virtual void DeclareNamespaces(CNode& rNode) = 0;
- void DeclareNamespace(CNode& rNode, const CString& sPrefix, const CString& sURI)
- {
- rNode.DeclareNamespace(sPrefix, sURI);
- }
-
- CString m_sName;
- CString m_sNamespaceURI;
- CString m_sSchemaLocation;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaType
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaType
- {
- public:
- virtual operator CString() = 0;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaBoolean
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaBoolean : public CSchemaType
- {
- public:
- CSchemaBoolean(bool bValue) { m_Value = bValue; }
- CSchemaBoolean(const CString& sValue) { m_Value = (sValue == _T("true") || sValue == _T("1")); }
- virtual operator bool() { return m_Value; }
- virtual operator CString() { return m_Value ? _T("true") : _T("false"); }
-
- typedef bool basetype;
-
- protected:
- bool m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaFloat (32bit floating point number)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaFloat : public CSchemaType
- {
- public:
- CSchemaFloat(float fValue) { m_Value = fValue; }
- CSchemaFloat(const CString& sValue) { _stscanf(sValue, _T("%G"), &m_Value); }
- virtual operator float() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 32, _T("%G"), m_Value); return szValue; }
-
- typedef float basetype;
-
- protected:
- float m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaDouble (64bit floating point number)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaDouble : public CSchemaType
- {
- public:
- CSchemaDouble(double fValue) { m_Value = fValue; }
- CSchemaDouble(const CString& sValue) { _stscanf(sValue, _T("%G"), &m_Value); }
- virtual operator double() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 32, _T("%G"), m_Value); return szValue; }
-
- typedef double basetype;
-
- protected:
- double m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CDecimal
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaDecimal : public CSchemaType
- {
- public:
- CSchemaDecimal(double fValue) { m_Value = fValue; }
- CSchemaDecimal(const CString& sValue) { _stscanf(sValue, _T("%f"), &m_Value); }
- virtual operator double() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 32, _T("%f"), m_Value); return szValue; }
-
- typedef double basetype;
-
- protected:
- float m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaLong (signed 64bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaLong : public CSchemaType
- {
- public:
- CSchemaLong(__int64 nValue) { m_Value = nValue; }
- CSchemaLong(const CString& sValue) { m_Value = _ttoi64(sValue); }
- virtual operator __int64() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%I64i"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef __int64 basetype;
-
- protected:
- __int64 m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaUnsignedLong (unsigned 64bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaUnsignedLong : public CSchemaType
- {
- public:
- CSchemaUnsignedLong(unsigned __int64 nValue) { m_Value = nValue; }
- CSchemaUnsignedLong(const CString& sValue) { m_Value = _ttoi64(sValue); }
- virtual operator unsigned __int64() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%I64u"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef unsigned __int64 basetype;
-
- protected:
- unsigned __int64 m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaInt (signed 32bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaInt : public CSchemaType
- {
- public:
- CSchemaInt(long nValue) { m_Value = nValue; }
- CSchemaInt(const CString& sValue) { m_Value = _ttol(sValue); }
- virtual operator long() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%li"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef long basetype;
-
- protected:
- long m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaUnsignedInt (unsigned 32bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaUnsignedInt : public CSchemaType
- {
- public:
- CSchemaUnsignedInt(unsigned long nValue) { m_Value = nValue; }
- CSchemaUnsignedInt(const CString& sValue) { m_Value = _ttol(sValue); }
- virtual operator unsigned long() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%lu"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef unsigned long basetype;
-
- protected:
- unsigned long m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaShort (signed 16bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaShort : public CSchemaType
- {
- public:
- CSchemaShort(short nValue) { m_Value = nValue; }
- CSchemaShort(const CString& sValue) { m_Value = _ttoi(sValue); }
- virtual operator short() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%hi"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef short basetype;
-
- protected:
- short m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaUnsignedShort (unsigned 16bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaUnsignedShort : public CSchemaType
- {
- public:
- CSchemaUnsignedShort(unsigned short nValue) { m_Value = nValue; }
- CSchemaUnsignedShort(const CString& sValue) { m_Value = _ttoi(sValue); }
- virtual operator unsigned short() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%hu"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef unsigned short basetype;
-
- protected:
- unsigned short m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaByte (signed 8bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaByte : public CSchemaType
- {
- public:
- CSchemaByte(char nValue) { m_Value = nValue; }
- CSchemaByte(const CString& sValue) { m_Value = _ttoi(sValue); }
- virtual operator char() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%hi"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef char basetype;
-
- protected:
- char m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaUnsignedShort (unsigned 16bit integer)
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaUnsignedByte : public CSchemaType
- {
- public:
- CSchemaUnsignedByte(unsigned char nValue) { m_Value = nValue; }
- CSchemaUnsignedByte(const CString& sValue) { m_Value = _ttoi(sValue); }
- virtual operator unsigned char() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%hu"), m_Value); szValue\[31\] = 0; return szValue; }
-
- typedef unsigned char basetype;
-
- protected:
- unsigned char m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaInteger
- // CSchemaNegativeInteger
- // CSchemaNonNegativeInteger
- // CSchemaPositiveInteger
- // CSchemaNonPositiveInteger
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- typedef CSchemaLong CSchemaInteger;
- typedef CSchemaInteger CSchemaNegativeInteger;
- typedef CSchemaInteger CSchemaNonNegativeInteger;
- typedef CSchemaInteger CSchemaPositiveInteger;
- typedef CSchemaInteger CSchemaNonPositiveInteger;
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaString family
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaString : public CSchemaType
- {
- public:
- CSchemaString(LPCTSTR szValue) : m_Value(szValue) {}
- CSchemaString(const CString& sValue) : m_Value(sValue) {}
- virtual operator CString() { return m_Value; }
-
- typedef LPCTSTR basetype;
-
- protected:
- CString m_Value;
- };
-
-
- typedef CSchemaString CSchemaNormalizedString;
- typedef CSchemaString CSchemaToken;
- typedef CSchemaString CSchemaLanguage;
- typedef CSchemaString CSchemaName;
- typedef CSchemaString CSchemaNMToken;
- typedef CSchemaString CSchemaNMTokens;
- typedef CSchemaString CSchemaNCName;
- typedef CSchemaString CSchemaID;
- typedef CSchemaString CSchemaIDRef;
- typedef CSchemaString CSchemaIDRefs;
- typedef CSchemaString CSchemaEntity;
- typedef CSchemaString CSchemaEntities;
- typedef CSchemaString CSchemaAnyURI;
- typedef CSchemaString CSchemaQName;
- typedef CSchemaString CSchemaNotation;
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaDate
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaDate : public CSchemaType
- {
- public:
- CSchemaDate(COleDateTime Value) : m_Value( Value ) {}
- CSchemaDate(const CString& sValue) { m_Value.SetDate(_ttoi(sValue.Mid(0, 4)), _ttoi(sValue.Mid(5, 2)), _ttoi(sValue.Mid(8, 2))); }
- virtual operator CString() { return m_Value.Format(_T("%Y-%m-%d")); }
-
- typedef COleDateTime basetype;
-
- protected:
- COleDateTime m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaTime
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaTime : public CSchemaType
- {
- public:
- CSchemaTime(COleDateTime Value) : m_Value( Value ) {}
- CSchemaTime(const CString& sValue) { m_Value.SetTime(_ttoi(sValue.Mid(0, 2)), _ttoi(sValue.Mid(3, 2)), _ttoi(sValue.Mid(6, 2))); }
- virtual operator CString() { return m_Value.Format(_T("%H:%M:%S")); }
-
- typedef COleDateTime basetype;
-
- protected:
- COleDateTime m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaDateTime
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaDateTime : public CSchemaType
- {
- public:
- CSchemaDateTime(COleDateTime Value) : m_Value( Value ) {}
- CSchemaDateTime(const CString& sValue) { m_Value.SetDateTime(_ttoi(sValue.Mid(0, 4)), _ttoi(sValue.Mid(5, 2)), _ttoi(sValue.Mid(8, 2)), _ttoi(sValue.Mid(11, 2)), _ttoi(sValue.Mid(14, 2)), _ttoi(sValue.Mid(17, 2))); }
- virtual operator CString() { return m_Value.Format(_T("%Y-%m-%dT%H:%M:%S")); }
-
- typedef COleDateTime basetype;
-
- protected:
- COleDateTime m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaYear
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- typedef CSchemaShort CSchemaYear;
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaMonth
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaMonth : public CSchemaType
- {
- public:
- CSchemaMonth(unsigned char nValue) { m_Value = nValue; }
- CSchemaMonth(const CString& sValue) { _stscanf(sValue, _T("--%02hi--"), &m_Value); }
- virtual operator unsigned char() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("--%02hi--"), m_Value); return szValue; }
-
- typedef unsigned char basetype;
-
- protected:
- unsigned char m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaDay
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaDay : public CSchemaType
- {
- public:
- CSchemaDay(unsigned char nValue) { m_Value = nValue; }
- CSchemaDay(const CString& sValue) { _stscanf(sValue, _T("---%02hi"), &m_Value); }
- virtual operator unsigned char() { return m_Value; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("---%02hi"), m_Value); return szValue; }
-
- typedef unsigned char basetype;
-
- protected:
- unsigned char m_Value;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaYearMonth
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaYearMonth : public CSchemaType
- {
- public:
- CSchemaYearMonth(short nYear, unsigned char nMonth) { m_nYear = nYear; m_nMonth = nMonth; }
- CSchemaYearMonth(const CString& sValue) { _stscanf(sValue, _T("%04hi-%02hi"), &m_nYear, &m_nMonth); }
- CSchemaYearMonth(LPCTSTR szValue) { CSchemaYearMonth(CString(szValue)); }
- short GetYear() { return m_nYear; }
- short GetMonth() { return m_nMonth; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("%04hi-%02hi"), m_nYear, m_nMonth); return szValue; }
-
- bool operator ==(CSchemaYearMonth& rOther) { return m_nYear == rOther.m_nYear && m_nMonth == rOther.m_nMonth; }
- bool operator <(CSchemaYearMonth& rOther) { return m_nYear < rOther.m_nYear || (m_nYear == rOther.m_nYear && m_nMonth < rOther.m_nMonth); }
-
- typedef LPCTSTR basetype;
-
- protected:
- short m_nYear;
- unsigned char m_nMonth;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaMonthDay
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaMonthDay : public CSchemaType
- {
- public:
- CSchemaMonthDay(unsigned char nMonth, unsigned char nDay) { m_nMonth = nMonth; m_nDay = nDay; }
- CSchemaMonthDay(const CString& sValue) { _stscanf(sValue, _T("--%02hi-%02hi"), &m_nMonth, &m_nDay); }
- CSchemaMonthDay(LPCTSTR szValue) { CSchemaMonthDay(CString(szValue)); }
- short GetMonth() { return m_nMonth; }
- short GetDay() { return m_nDay; }
- virtual operator CString() { TCHAR szValue\[32\]; _sntprintf(szValue, 31, _T("--%02hi-%02hi"), m_nMonth, m_nDay); return szValue; }
-
- bool operator ==(CSchemaMonthDay& rOther) { return m_nMonth == rOther.m_nMonth && m_nDay == rOther.m_nDay; }
- bool operator <(CSchemaMonthDay& rOther) { return m_nMonth < rOther.m_nMonth || (m_nMonth == rOther.m_nMonth && m_nDay < rOther.m_nDay); }
-
- typedef LPCTSTR basetype;
-
- protected:
- unsigned char m_nMonth;
- unsigned char m_nDay;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaDuration
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaDuration : public CSchemaType
- {
- public:
- CSchemaDuration(LPCTSTR szValue) { CSchemaDuration(CString(szValue)); }
- CSchemaDuration(const CString& sValue)
- {
- m_bPositive = true;
- m_nYear = 0;
- m_nMonth = 0;
- m_nDay = 0;
- m_nHour = 0;
- m_nMinute = 0;
- m_nSecond = 0;
-
- bool bTime = false;
- const TCHAR* szBuffer = (LPCTSTR)sValue;
-
- if (*szBuffer == _T('-'))
- {
- m_bPositive = false;
- szBuffer++;
- }
-
- if (*szBuffer != _T('P'))
- {
- return;
- }
-
- while (*szBuffer)
- {
- if (*szBuffer == _T('T'))
- {
- bTime = true;
- szBuffer++;
- }
-
- int nData = _ttoi(szBuffer);
- szBuffer += _tcsspn(szBuffer, _T("0123456789"));
-
- if (*szBuffer == _T('.'))
- {
- szBuffer++;
- szBuffer += _tcsspn(szBuffer, _T("0123456789"));
- }
-
- if (bTime)
- {
- switch (*szBuffer++)
- {
- case _T('H'): m_nHour = nData; break;
- case _T('M'): m_nMinute = nData; break;
- case _T('S'): m_nSecond = nData; break;
- }
- }
- else
- {
- switch (*szBuffer++)
- {
- case _T('Y'): m_nYear = nData; break;
- case _T('M'): m_nMonth = nData; break;
- case _T('D'): m_nDay = nData; break;
- }
- }
- }
- }
- short GetYear() { return m_nYear; }
- short GetMonth() { return m_nMonth; }
- short GetDay() { return m_nDay; }
- short GetHour() { return m_nHour; }
- short GetMinue() { return m_nHour; }
- short GetSecond() { return m_nSecond; }
- virtual operator CString()
- {
- CString sResult;
- TCHAR szValue\[32\];
-
- if (!m_bPositive)
- sResult = _T('-');
- sResult += _T('P');
-
- if (m_nYear)
- {
- _sntprintf(szValue, 31, _T("%hiY"), m_nYear);
- sResult += szValue;
- }
- if (m_nMonth)
- {
- _sntprintf(szValue, 31, _T("%hiM"), m_nMonth);
- sResult += szValue;
- }
- if (m_nDay)
- {
- _sntprintf(szValue, 31, _T("%hiD"), m_nDay);
- sResult += szValue;
- }
-
- if (m_nHour || m_nMinute || m_nSecond)
- {
- sResult += _T('T');
- if (m_nHour)
- {
- _sntprintf(szValue, 31, _T("%hiH"), m_nHour);
- sResult += szValue;
- }
- if (m_nMinute)
- {
- _sntprintf(szValue, 31, _T("%hiM"), m_nMinute);
- sResult += szValue;
- }
- if (m_nSecond)
- {
- _sntprintf(szValue, 31, _T("%hiS"), m_nSecond);
- sResult += szValue;
- }
- }
-
- return sResult;
- }
-
- typedef LPCTSTR basetype;
-
- protected:
- bool m_bPositive;
- short m_nYear;
- short m_nMonth;
- short m_nDay;
- short m_nHour;
- short m_nMinute;
- short m_nSecond;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaHexBinary
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- inline unsigned char hex2dec(TCHAR c)
- {
- if (c >= _T('0') && c <= _T('9'))
- return c - _T('0');
- if (c >= _T('a') && c <= _T('f'))
- return 10 + c - _T('a');
- if (c >= _T('A') && c <= _T('A'))
- return 10 + c - _T('A');
- return 0;
- }
-
-
- class CSchemaHexBinary : public CSchemaType
- {
- public:
- CSchemaHexBinary(LPCTSTR szValue)
- {
- CSchemaHexBinary(CString(szValue));
- }
-
- CSchemaHexBinary(const CSchemaHexBinary& rOther)
- {
- m_nSize = rOther.m_nSize;
- m_szData = new unsigned char\[m_nSize\];
- memcpy(m_szData, rOther.m_szData, m_nSize);
- }
-
- CSchemaHexBinary(const CString& sValue)
- {
- m_nSize = sValue.GetLength() / 2;
- m_szData = new unsigned char\[m_nSize\];
- LPCTSTR szValue = (LPCTSTR)sValue;
- unsigned char* szDataWriter = m_szData;
- while (*szValue && *(szValue + 1))
- {
- *szDataWriter++ = hex2dec(*szValue) * 16 + hex2dec(*(szValue + 1));
- szValue += 2;
- }
- }
-
- virtual ~CSchemaHexBinary()
- {
- }
-
- int GetSize() const { return m_nSize; }
- unsigned char* GetData() { return m_szData; }
- virtual operator CString()
- {
- return m_szData;
- }
-
- typedef LPCTSTR basetype;
-
- protected:
- int m_nSize;
- unsigned char* m_szData;
- };
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaBase64Binary
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- class CSchemaBase64Binary : public CSchemaType
- {
- public:
- CSchemaBase64Binary(LPCTSTR szValue);
- CSchemaBase64Binary(const CSchemaBase64Binary& rOther);
- CSchemaBase64Binary(const CString& sValue);
- virtual ~CSchemaBase64Binary();
-
- CSchemaBase64Binary& operator =(const CSchemaBase64Binary& rOther);
-
- int GetSize() const;
- LPBYTE GetData() const;
- void SetData(LPBYTE pData, int nSize, bool bCopy = true);
- virtual operator CString();
-
- typedef LPCTSTR basetype;
-
- protected:
- void Encode(LPBYTE pSrc, int nSrcSize, LPTSTR& rszDst, int& rnDstSize, int nMaxLineLength = 76);
- void Decode(LPCTSTR szSrc, LPBYTE& rpDst, int& rnDstSize);
-
- static const TCHAR m_EncodeArray\[\];
- static const TCHAR m_DecodeArray\[\];
-
- int m_nSize;
- LPBYTE m_pData;
- };
- [
- close
- create $outputpath & "/Node.cpp"
- ]
- #include "stdafx.h"
- #include "Node.h"
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CNodeException
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- CNodeException::CNodeException(int nCode, const CString& sMessage)
- : m_nCode(nCode), m_sMessage(sMessage)
- {
- }
-
-
- int CNodeException::GetCode()
- {
- return m_nCode;
- }
-
-
- CString CNodeException::GetMessage()
- {
- return m_sMessage;
- }
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CFragmentCollection
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- MSXML2::IXMLDOMDocument2Ptr CFragmentCollection::GetDocument()
- {
- if (m_spDocument == NULL)
- {
- m_spDocument.CreateInstance(__uuidof(MSXML2::DOMDocument40));
- m_spDocument->async = VARIANT_FALSE;
- m_spDocument->setProperty(_T("NewParser"), true);
- }
- return m_spDocument;
- }
-
-
- MSXML2::IXMLDOMNodePtr CFragmentCollection::CreateFragment()
- {
- //return GetDocument()->createDocumentFragment();
-
- TCHAR szNumber\[32\] = _T("tmp");
- _itot(m_nTmpNameCounter++, szNumber + 3, 10);
-
- if (m_spFragment == NULL)
- {
- m_spFragment = GetDocument()->createDocumentFragment();
- }
- MSXML2::IXMLDOMNodePtr spNode = GetDocument()->createElement(szNumber);
- m_spFragment->appendChild( spNode );
- return spNode;
- }
-
-
- void CFragmentCollection::CheckDocumentCounter()
- {
- if (m_spDocument)
- {
- m_spDocument->AddRef();
- if (m_spDocument->Release() == 1)
- {
- m_spFragment.Release();
- m_spDocument.Release();
- }
- }
- }
-
-
- MSXML2::IXMLDOMDocument2Ptr CFragmentCollection::m_spDocument = NULL;
- MSXML2::IXMLDOMDocumentFragmentPtr CFragmentCollection::m_spFragment = NULL;
- int CFragmentCollection::m_nTmpNameCounter = 0;
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CNode
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- CNode::CNode()
- {
- m_spDocument = CFragmentCollection::GetDocument();
- m_spNode = CFragmentCollection::CreateFragment();
- }
-
-
- CNode::CNode(CNode& rParentNode, MSXML2::IXMLDOMNodePtr spThisNode)
- {
- m_spDocument = rParentNode.m_spDocument;
- m_spNode = spThisNode;
- }
-
-
- CNode::CNode(MSXML2::IXMLDOMDocument2Ptr& rspDocument)
- {
- m_spDocument = rspDocument;
- m_spNode = rspDocument->documentElement;
- }
-
-
- CNode::~CNode()
- {
- if ( m_spDocument )
- m_spDocument.Release();
-
- CFragmentCollection::CheckDocumentCounter();
- }
-
-
- CString CNode::Transform(const CString& sXSLTFilename)
- {
- MSXML2::IXMLDOMDocument2Ptr spXSLTDocument;
- spXSLTDocument.CreateInstance(__uuidof(MSXML2::DOMDocument40));
- spXSLTDocument->async = VARIANT_FALSE;
- spXSLTDocument->setProperty(_T("NewParser"), true);
-
- if (!spXSLTDocument->load(_variant_t(sXSLTFilename)))
- {
- MSXML2::IXMLDOMParseErrorPtr spError = spXSLTDocument->parseError;
- throw CNodeException(CNodeException::eError1, (LPCTSTR)spError->reason);
- }
-
- return (LPCTSTR)m_spNode->transformNode(spXSLTDocument);
- }
-
-
- void CNode::DeclareNamespace(const CString& sPrefix, const CString& sURI)
- {
- if (sURI.IsEmpty())
- return;
-
- MSXML2::IXMLDOMElementPtr spRootElement = m_spDocument->documentElement;
-
- if (sPrefix.IsEmpty())
- spRootElement->setAttribute(_T("xmlns"), (LPCTSTR)sURI);
- else
- spRootElement->setAttribute((LPCTSTR)(_T("xmlns:") + sPrefix), (LPCTSTR)sURI);
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::CreateNode(ENodeType eNodeType, const CString& sNamespaceURI, LPCTSTR szName)
- {
- _variant_t varNodeType(eNodeType == Element ? (short)MSXML2::NODE_ELEMENT : (short)MSXML2::NODE_ATTRIBUTE);
- return m_spDocument->createNode(varNodeType, szName, (LPCTSTR)sNamespaceURI);
- }
-
-
- bool CNode::CompareChildName( MSXML2::IXMLDOMNodePtr spChild, const CString& sNamespaceURI, const CString& sName )
- {
- return
- ( spChild->baseName == _bstr_t(sName) ) &&
- (
- ( spChild->namespaceURI == _bstr_t(sNamespaceURI) ) ||
- ( !spChild->namespaceURI && sNamespaceURI.IsEmpty() )
- );
- }
-
-
- int CNode::ChildCount(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName)
- {
- if (eNodeType == Element)
- {
- int nCount = 0;
-
- for (MSXML2::IXMLDOMNodePtr spChild = m_spNode->firstChild; spChild; spChild = spChild->nextSibling)
- if ( CompareChildName( spChild, sNamespaceURI, sName ) )
- nCount++;
- return nCount;
- }
- else // eNodeType == Attribute
- {
- return m_spNode->attributes->getQualifiedItem((LPCTSTR)sName, (LPCTSTR)sNamespaceURI) ? 1 : 0;
- }
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::AppendChild(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, const CString& sValue)
- {
- if (eNodeType == Element)
- {
- MSXML2::IXMLDOMElementPtr spElement = CreateNode(Element, sNamespaceURI, sName);
- spElement->text = (LPCTSTR)sValue;
- m_spNode->appendChild(spElement);
- return spElement;
- }
- else // eNodeType == Attribute
- {
- MSXML2::IXMLDOMAttributePtr spAttribute = CreateNode(Attribute, sNamespaceURI, sName);
- spAttribute->text = (LPCTSTR)sValue;
- MSXML2::IXMLDOMNamedNodeMapPtr spNodeMap = m_spNode->attributes;
- if (spNodeMap)
- spNodeMap->setNamedItem(spAttribute);
- else
- AfxMessageBox(_T("No access to attributes"));
- return spAttribute;
- }
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::AppendChildAttribute(MSXML2::IXMLDOMNodePtr spNode, const CString& sNamespaceURI, const CString& sName, const CString& sValue)
- {
- MSXML2::IXMLDOMAttributePtr spAttribute = CreateNode(Attribute, sNamespaceURI, sName);
- spAttribute->text = (LPCTSTR)sValue;
- spNode->attributes->setNamedItem(spAttribute);
- return spAttribute;
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::AppendChildElement(const CString& sNamespaceURI, const CString& sElement, CNode* pNode, MSXML2::IXMLDOMNodePtr spHostNode/* = MSXML2::IXMLDOMNodePtr()*/)
- {
- MSXML2::IXMLDOMElementPtr spElement = CreateNode(Element, sNamespaceURI, sElement);
-
- while (pNode->m_spNode->firstChild != 0)
- {
- spElement->appendChild(pNode->m_spNode->removeChild(pNode->m_spNode->firstChild));
- }
-
- MSXML2::IXMLDOMNamedNodeMapPtr spAttributeMap = pNode->m_spNode->attributes;
- while (spAttributeMap->length > 0)
- {
- spElement->attributes->setNamedItem(spAttributeMap->removeNamedItem(spAttributeMap->item\[0\]->nodeName));
- }
-
- pNode->m_spNode = spElement;
- pNode->m_spDocument = m_spDocument;
-
- if (spHostNode == NULL)
- m_spNode->appendChild(spElement);
- else
- spHostNode->appendChild(spElement);
- return spElement;
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::RemoveChildAt(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, int nIndex)
- {
- if (eNodeType == Element)
- {
- int nCount = 0;
- for (MSXML2::IXMLDOMNodePtr spChild = m_spNode->firstChild; spChild; spChild = spChild->nextSibling)
- if ( CompareChildName( spChild, sNamespaceURI, sName ) )
- if (nCount++ == nIndex)
- return m_spNode->removeChild(spChild);
- if (nCount > 0)
- throw CNodeException(CNodeException::eError1, _T("Index out of range"));
- else
- throw CNodeException(CNodeException::eError1, _T("Not found"));
- }
- else // eNodeType == Attribute
- {
- return m_spNode->attributes->removeNamedItem((LPCTSTR)sName);
- }
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::ReplaceChildAt(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, int nIndex, const CString& sValue)
- {
- if (eNodeType == Element)
- {
- int nCount = 0;
- for (MSXML2::IXMLDOMNodePtr spChild = m_spNode->firstChild; spChild; spChild = spChild->nextSibling)
- if ( CompareChildName( spChild, sNamespaceURI, sName ) )
- if (nCount++ == nIndex)
- {
- MSXML2::IXMLDOMElementPtr spElement = m_spDocument->createElement((LPCTSTR)sName);
- spElement->text = (LPCTSTR)sValue;
-
- return m_spNode->replaceChild(spElement, spChild);
- }
- throw CNodeException(CNodeException::eError1, _T("Not found"));
- }
- else // eNodeType == Attribute
- {
- if (nIndex > 0)
- throw CNodeException(CNodeException::eError1, _T("Index must be zero"));
- MSXML2::IXMLDOMAttributePtr spAttribute = m_spNode->attributes->getQualifiedItem((LPCTSTR)sName, (LPCTSTR)sNamespaceURI);
- if (spAttribute)
- {
- spAttribute->text = (LPCTSTR)sValue;
- return spAttribute;
- }
- else
- throw CNodeException(CNodeException::eError1, _T("Not found"));
- }
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::GetChildAt(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, int nIndex)
- {
- if (eNodeType == Element)
- {
- int nCount = 0;
- for (MSXML2::IXMLDOMNodePtr spChild = m_spNode->firstChild; spChild; spChild = spChild->nextSibling)
- if ( CompareChildName( spChild, sNamespaceURI, sName ) )
- if (nCount++ == nIndex)
- return spChild;
- if (nCount > 0)
- throw CNodeException(CNodeException::eError1, _T("Index out of range"));
- else
- throw CNodeException(CNodeException::eError1, _T("Not found"));
- }
- else // eNodeType == Attribute
- {
- if (nIndex > 0)
- throw CNodeException(CNodeException::eError1, _T("Index must be zero"));
- MSXML2::IXMLDOMNodePtr spAttribute = m_spNode->attributes->getQualifiedItem((LPCTSTR)sName, (LPCTSTR)sNamespaceURI);
- if (spAttribute)
- return spAttribute;
- else
- throw CNodeException(CNodeException::eError1, _T("Index out of range"));
- }
- }
-
-
- MSXML2::IXMLDOMNodePtr CNode::SetChild(ENodeType eNodeType, const CString& sNamespaceURI, const CString& sName, const CString& sValue)
- {
- if (ChildCount(eNodeType, sNamespaceURI, sName) == 0)
- return AppendChild(eNodeType, sNamespaceURI, sName, sValue);
- else
- return ReplaceChildAt(eNodeType, sNamespaceURI, sName, 0, sValue);
- }
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CDoc
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- MSXML2::IXMLDOMDocument2Ptr CDoc::Load(const CString& sFilename)
- {
- MSXML2::IXMLDOMDocument2Ptr spDocument;
-
- spDocument.CreateInstance(__uuidof(MSXML2::DOMDocument40));
- spDocument->async = VARIANT_FALSE;
- spDocument->validateOnParse = VARIANT_FALSE;
- spDocument->setProperty(_T("NewParser"), true);
-
- if (!spDocument->load(_variant_t(sFilename)))
- {
- MSXML2::IXMLDOMParseErrorPtr spError = spDocument->parseError;
- throw CNodeException(CNodeException::eError1, (LPCTSTR)spError->reason);
- }
- return spDocument;
- }
-
-
- void CDoc::SetRootElementName(CString sName, CString sNamespaceURI)
- {
- m_sName = sName;
- m_sNamespaceURI = sNamespaceURI;
- }
-
-
- void CDoc::SetSchemaLocation(const CString& sSchemaLocation)
- {
- m_sSchemaLocation = sSchemaLocation;
- }
-
-
- void CDoc::Save(const CString& sFilename, CNode& rNode)
- {
- if (rNode.m_spNode->parentNode->nodeTypeString == _bstr_t(_T("documentfragment")))
- {
- FinalizeRootElement(rNode);
- }
- InternalSetSchemaLocation(rNode);
-
- rNode.m_spDocument->save(_variant_t(sFilename));
- }
-
-
- void CDoc::Validate(CNode& rNode)
- {
-
- if (rNode.m_spNode->parentNode->nodeTypeString == _bstr_t(_T("documentfragment")))
- {
- FinalizeRootElement(rNode);
- }
- InternalSetSchemaLocation(rNode);
-
- MSXML2::IXMLDOMParseErrorPtr spError = rNode.m_spDocument->validate();
- if (spError->errorCode)
- {
- throw CNodeException(CNodeException::eError1, (LPCTSTR)spError->reason);
- }
- }
-
-
- void CDoc::FinalizeRootElement(CNode& rNode)
- {
- if (m_sName.IsEmpty())
- {
- throw CNodeException(CNodeException::eError1, _T("Call SetRootElementName first"));
- }
-
- rNode.m_spDocument.CreateInstance(__uuidof(MSXML2::DOMDocument40));
- rNode.m_spDocument->async = VARIANT_FALSE;
- rNode.m_spDocument->setProperty(_T("NewParser"), true);
-
- rNode.m_spDocument->appendChild(rNode.m_spDocument->createProcessingInstruction(_T("xml"), _T("version='1.0' encoding='UTF-8'")));
-
- rNode.m_spNode = rNode.AppendChildElement(m_sNamespaceURI, m_sName, &rNode, rNode.m_spDocument);
- MSXML2::IXMLDOMElementPtr spRootElement = rNode.m_spNode;
-
- spRootElement->setAttribute(_T("xmlns:xsi"), _T("http://www.w3.org/2001/XMLSchema-instance"));
-
- if (m_sNamespaceURI.IsEmpty())
- {
- if (!m_sSchemaLocation.IsEmpty())
- spRootElement->setAttribute(_T("xsi:noNamespaceSchemaLocation"), (LPCTSTR)m_sSchemaLocation);
- }
- else
- {
- if (!m_sSchemaLocation.IsEmpty())
- spRootElement->setAttribute(_T("xsi:schemaLocation"), (LPCTSTR)(m_sNamespaceURI + _T(" ") + m_sSchemaLocation));
- }
-
- DeclareNamespaces(rNode);
- }
-
-
- void CDoc::InternalSetSchemaLocation(CNode& rNode)
- {
- MSXML2::IXMLDOMElementPtr spRootElement = rNode.m_spNode;
-
- if (m_sNamespaceURI.IsEmpty())
- {
- if (!m_sSchemaLocation.IsEmpty() && spRootElement->getAttributeNode(_T("xsi:noNamespaceSchemaLocation")) == NULL)
- spRootElement->setAttribute(_T("xsi:noNamespaceSchemaLocation"), (LPCTSTR)m_sSchemaLocation);
- }
- else
- {
- if (!m_sSchemaLocation.IsEmpty() && spRootElement->getAttributeNode(_T("xsi:schemaLocation")) == NULL)
- spRootElement->setAttribute(_T("xsi:schemaLocation"), (LPCTSTR)(m_sNamespaceURI + _T(" ") + m_sSchemaLocation));
- }
- }
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //
- // CSchemaBase64Binary
- //
- ///////////////////////////////////////////////////////////////////////////////
-
-
- const TCHAR CSchemaBase64Binary::m_EncodeArray\[\] =
- _T("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
-
-
- const TCHAR CSchemaBase64Binary::m_DecodeArray\[\] =
- {
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
- -1, 0, 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, -1, -1, -1, -1, -1,
- -1, 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, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
- };
-
-
- CSchemaBase64Binary::CSchemaBase64Binary(LPCTSTR szValue)
- {
- Decode(szValue, m_pData, m_nSize);
- }
-
-
- CSchemaBase64Binary::CSchemaBase64Binary(const CSchemaBase64Binary& rOther)
- {
- m_nSize = rOther.m_nSize;
- m_pData = new BYTE\[m_nSize\];
- memcpy(m_pData, rOther.m_pData, m_nSize);
- }
-
-
- CSchemaBase64Binary::CSchemaBase64Binary(const CString& sValue)
- {
- Decode(sValue, m_pData, m_nSize);
- }
-
-
- CSchemaBase64Binary::~CSchemaBase64Binary()
- {
- if (m_pData)
- {
- delete\[\] m_pData;
- }
- }
-
-
- CSchemaBase64Binary& CSchemaBase64Binary::operator =(const CSchemaBase64Binary& rOther)
- {
- m_nSize = rOther.m_nSize;
- m_pData = new BYTE\[m_nSize\];
- memcpy(m_pData, rOther.m_pData, m_nSize);
- return *this;
- }
-
-
- int CSchemaBase64Binary::GetSize() const
- {
- return m_nSize;
- }
-
-
- unsigned char* CSchemaBase64Binary::GetData() const
- {
- return m_pData;
- }
-
-
- void CSchemaBase64Binary::SetData(LPBYTE pData, int nSize, bool bCopy/* = true*/)
- {
- if (m_pData)
- {
- delete\[\] m_pData;
- }
-
- m_nSize = nSize;
- if (bCopy)
- {
- m_pData = new BYTE\[m_nSize\];
- memcpy(m_pData, pData, m_nSize);
- }
- else
- {
- m_pData = pData;
- }
- }
-
-
- CSchemaBase64Binary::operator CString()
- {
- LPTSTR szDst;
- int nDstSize;
- CString sResult;
- Encode(m_pData, m_nSize, szDst, nDstSize);
- sResult = szDst;
- delete szDst;
- return sResult;
- }
-
-
- void CSchemaBase64Binary::Encode(LPBYTE pSrc, int nSrcSize, LPTSTR& rszDst, int& rnDstSize, int nMaxLineLength/* = 76*/)
- {
- int nTmpSize, nAllocSize, nLineLength, i;
- LPTSTR szDstWriter;
- DWORD bBuf;
-
- if (nSrcSize == 0)
- {
- rszDst = NULL;
- rnDstSize = 0;
- return;
- }
-
- nTmpSize = nSrcSize * 4 / 3;
- nAllocSize = nTmpSize + 8;
- if (nMaxLineLength > 0)
- nAllocSize += nTmpSize * 2 / nMaxLineLength;
-
- rszDst = new TCHAR\[nAllocSize\];
- szDstWriter = rszDst;
- nTmpSize = nSrcSize / 3 * 3;
- rnDstSize = 0;
- nLineLength = 0;
-
- if (nMaxLineLength > 0)
- {
- for (i = 0; i < nTmpSize; i += 3)
- {
- bBuf = *(pSrc + i) << 16 | *(pSrc + i + 1) << 8 | *(pSrc + i + 2);
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 18) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 12) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 6) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[ bBuf & 0x3F\];
- rnDstSize += 4;
-
- nLineLength += 4;
- if (nMaxLineLength > 0 && nLineLength >= nMaxLineLength)
- {
- *szDstWriter++ = _T('\\r');
- *szDstWriter++ = _T('\\n');
- rnDstSize += 2;
- nLineLength = 0;
- }
- }
- }
- else
- {
- for (i = 0; i < nTmpSize; i += 3)
- {
- bBuf = *(pSrc + i) << 16 | *(pSrc + i + 1) << 8 | *(pSrc + i + 2);
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 18) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 12) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 6) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[ bBuf & 0x3F\];
- rnDstSize += 4;
- }
- }
-
- int nRest = nSrcSize - nTmpSize;
- if (nRest == 2)
- {
- bBuf = *(pSrc + i) << 8 | *(pSrc + i + 1);
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 10) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 4) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[(bBuf << 2) & 0x3F\];
- *szDstWriter++ = _T('=');
- rnDstSize += 4;
- }
- else if (nRest == 1)
- {
- bBuf = *(pSrc + i);
- *szDstWriter++ = m_EncodeArray\[(bBuf >> 2) & 0x3F\];
- *szDstWriter++ = m_EncodeArray\[(bBuf << 4) & 0x3F\];
- *szDstWriter++ = _T('=');
- *szDstWriter++ = _T('=');
- rnDstSize += 4;
- }
-
- *szDstWriter = 0;
- }
-
-
- void CSchemaBase64Binary::Decode(LPCTSTR szSrc, LPBYTE& rpDst, int& rnDstSize)
- {
- int nSrcSize;
- LPCTSTR szSrcReader;
- LPBYTE pDstWriter;
- DWORD nBuf;
- LPBYTE pnBuf = (LPBYTE)&nBuf;
- int nCount;
-
- szSrcReader = szSrc;
- while (*szSrcReader && m_DecodeArray\[*szSrcReader\] == -1)
- {
- szSrcReader++;
- }
- nSrcSize = _tcslen(szSrcReader);
- if (nSrcSize == 0)
- {
- rpDst = NULL;
- rnDstSize = 0;
- return;
- }
-
- rpDst = new BYTE\[nSrcSize\];
- pDstWriter = rpDst;
- rnDstSize = 0;
- nBuf = 0;
- nCount = 0;
-
- while (*szSrcReader)
- {
- while (m_DecodeArray\[*szSrcReader\] == -1)
- {
- if (!*++szSrcReader)
- goto finish;
- }
-
- nBuf |= m_DecodeArray\[*szSrcReader++\];
-
- if (++nCount == 4)
- {
- *pDstWriter++ = (BYTE)(nBuf >> 16);
- *pDstWriter++ = (BYTE)(nBuf >> 8);
- *pDstWriter++ = (BYTE) nBuf;
- rnDstSize += 3;
- nBuf = 0;
- nCount = 0;
- }
- else
- {
- nBuf <<= 6;
- }
- }
-
- finish:
- if (nCount == 2)
- {
- *pDstWriter++ = (BYTE)(nBuf >> 10);
- rnDstSize++;
- }
- else if (nCount == 3)
- {
- *pDstWriter++ = (BYTE)(nBuf >> 16) & 0xFF;
- *pDstWriter++ = (BYTE)(nBuf >> 8) & 0xFF;
- rnDstSize += 2;
- }
- }
- [close]