mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 10:48:12 +02:00
* added an improved but incompatible TXMLConfig from Sergei Gorelkin
git-svn-id: trunk@6897 -
This commit is contained in:
parent
2eb6ef9d52
commit
d7752d3c69
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -4250,6 +4250,7 @@ packages/fcl-xml/src/wtagsimpl.inc svneol=native#text/plain
|
||||
packages/fcl-xml/src/wtagsintf.inc svneol=native#text/plain
|
||||
packages/fcl-xml/src/xhtml.pp svneol=native#text/plain
|
||||
packages/fcl-xml/src/xmlcfg.pp svneol=native#text/plain
|
||||
packages/fcl-xml/src/xmlconf.pp svneol=native#text/plain
|
||||
packages/fcl-xml/src/xmlread.pp svneol=native#text/plain
|
||||
packages/fcl-xml/src/xmlstreaming.pp svneol=native#text/plain
|
||||
packages/fcl-xml/src/xmlutils.pp svneol=native#text/plain
|
||||
|
@ -1,8 +1,8 @@
|
||||
#
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/04]
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/02/27]
|
||||
#
|
||||
default: all
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-embedded
|
||||
BSDs = freebsd netbsd openbsd darwin
|
||||
UNIXs = linux $(BSDs) solaris qnx
|
||||
LIMIT83fs = go32v2 os2 emx watcom
|
||||
@ -233,316 +233,310 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
|
||||
override PACKAGE_NAME=fcl-xml
|
||||
override PACKAGE_VERSION=2.0.0
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
override TARGET_UNITS+=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override TARGET_RSTS+=sax xpath htmlwriter
|
||||
override TARGET_RSTS+=sax xpath htmlwriter xmlconf
|
||||
endif
|
||||
override INSTALL_FPCPACKAGE=y
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
@ -695,9 +689,6 @@ endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_OPTIONS+=-S2h
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override COMPILER_OPTIONS+=-S2h
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_OPTIONS+=-S2h
|
||||
endif
|
||||
@ -851,9 +842,6 @@ endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_SOURCEDIR+=src
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override COMPILER_SOURCEDIR+=src
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_SOURCEDIR+=src
|
||||
endif
|
||||
@ -1991,15 +1979,6 @@ REQUIRE_PACKAGES_LIBASYNC=1
|
||||
REQUIRE_PACKAGES_PTHREADS=1
|
||||
REQUIRE_PACKAGES_FCL-BASE=1
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
REQUIRE_PACKAGES_RTL=1
|
||||
REQUIRE_PACKAGES_NETDB=1
|
||||
REQUIRE_PACKAGES_HASH=1
|
||||
REQUIRE_PACKAGES_PASZLIB=1
|
||||
REQUIRE_PACKAGES_LIBASYNC=1
|
||||
REQUIRE_PACKAGES_PTHREADS=1
|
||||
REQUIRE_PACKAGES_FCL-BASE=1
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
REQUIRE_PACKAGES_RTL=1
|
||||
REQUIRE_PACKAGES_NETDB=1
|
||||
|
@ -7,8 +7,8 @@ name=fcl-xml
|
||||
version=2.0.0
|
||||
|
||||
[target]
|
||||
units=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter
|
||||
rsts=sax xpath htmlwriter
|
||||
units=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf
|
||||
rsts=sax xpath htmlwriter xmlconf
|
||||
|
||||
[require]
|
||||
packages=netdb fcl-base
|
||||
|
445
packages/fcl-xml/src/xmlconf.pp
Normal file
445
packages/fcl-xml/src/xmlconf.pp
Normal file
@ -0,0 +1,445 @@
|
||||
{
|
||||
This file is part of the Free Component Library
|
||||
|
||||
Implementation of TXMLConfig class
|
||||
Copyright (c) 1999 - 2005 by Sebastian Guenther, sg@freepascal.org
|
||||
Modified in 2007 by Sergei Gorelkin, sergei_gorelkin@mail.ru
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{
|
||||
TXMLConfig enables applications to use XML files for storing their
|
||||
configuration data
|
||||
}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$MODE objfpc}
|
||||
{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
unit XMLConf;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils, Classes, DOM, XMLRead, XMLWrite;
|
||||
|
||||
resourcestring
|
||||
SWrongRootName = 'XML file has wrong root element name';
|
||||
|
||||
type
|
||||
EXMLConfigError = class(Exception);
|
||||
TPathFlags = set of (pfHasValue, pfWriteAccess);
|
||||
|
||||
{"APath" is the path and name of a value: A XML configuration file is
|
||||
hierachical. "/" is the path delimiter, the part after the last "/"
|
||||
is the name of the value. The path components will be mapped to XML
|
||||
elements, the name will be an element attribute.}
|
||||
|
||||
TXMLConfig = class(TComponent)
|
||||
private
|
||||
FFilename: String;
|
||||
FStartEmpty: Boolean;
|
||||
FRootName: DOMString;
|
||||
FDummy: DOMString;
|
||||
FPathStack: array of WideString;
|
||||
FPathCount: Integer;
|
||||
FPathDirty: Boolean;
|
||||
FElement: TDOMElement;
|
||||
procedure DoSetFilename(const AFilename: String; ForceReload: Boolean);
|
||||
procedure SetFilename(const AFilename: String);
|
||||
procedure SetStartEmpty(AValue: Boolean);
|
||||
procedure SetRootName(const AValue: DOMString);
|
||||
function DoFindNode(const APath: WideString; var Ident: DOMString;
|
||||
Flags: TPathFlags): TDomElement;
|
||||
function FindNode(const APath: WideString; out Ident: DOMString;
|
||||
Flags: TPathFlags): TDOMElement;
|
||||
protected
|
||||
Doc: TXMLDocument;
|
||||
FModified: Boolean;
|
||||
procedure Loaded; override;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
procedure Clear;
|
||||
procedure Flush; // Writes the XML file
|
||||
procedure OpenKey(const aPath: WideString);
|
||||
procedure CloseKey;
|
||||
procedure ResetKey;
|
||||
|
||||
function GetValue(const APath: WideString; const ADefault: WideString): WideString; overload;
|
||||
function GetValue(const APath: WideString; ADefault: Integer): Integer; overload;
|
||||
function GetValue(const APath: WideString; ADefault: Boolean): Boolean; overload;
|
||||
procedure SetValue(const APath: WideString; const AValue: WideString); overload;
|
||||
procedure SetValue(const APath: WideString; AValue: Integer); overload;
|
||||
procedure SetValue(const APath: WideString; AValue: Boolean); overload;
|
||||
|
||||
procedure SetDeleteValue(const APath: WideString; const AValue, DefValue: WideString); overload;
|
||||
procedure SetDeleteValue(const APath: WideString; AValue, DefValue: Integer); overload;
|
||||
procedure SetDeleteValue(const APath: WideString; AValue, DefValue: Boolean); overload;
|
||||
|
||||
procedure DeletePath(const APath: WideString);
|
||||
procedure DeleteValue(const APath: WideString);
|
||||
property Modified: Boolean read FModified;
|
||||
published
|
||||
property Filename: String read FFilename write SetFilename;
|
||||
property StartEmpty: Boolean read FStartEmpty write SetStartEmpty;
|
||||
property RootName: DOMString read FRootName write SetRootName;
|
||||
end;
|
||||
|
||||
|
||||
// ===================================================================
|
||||
|
||||
implementation
|
||||
|
||||
constructor TXMLConfig.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
FRootName := 'CONFIG';
|
||||
Doc := TXMLDocument.Create;
|
||||
Doc.AppendChild(Doc.CreateElement(FRootName));
|
||||
end;
|
||||
|
||||
destructor TXMLConfig.Destroy;
|
||||
begin
|
||||
if Assigned(Doc) then
|
||||
begin
|
||||
Flush;
|
||||
Doc.Free;
|
||||
end;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.Clear;
|
||||
begin
|
||||
Doc.ReplaceChild(Doc.CreateElement(FRootName), Doc.DocumentElement);
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.Flush;
|
||||
begin
|
||||
if Modified then
|
||||
begin
|
||||
WriteXMLFile(Doc, Filename);
|
||||
FModified := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TXMLConfig.GetValue(const APath: WideString; const ADefault: WideString): WideString;
|
||||
var
|
||||
Node: TDOMElement;
|
||||
Attr: TDOMAttr;
|
||||
Ident: DOMString;
|
||||
begin
|
||||
Result := ADefault;
|
||||
|
||||
Node := FindNode(APath, Ident, [pfHasValue]);
|
||||
if Assigned(Node) then
|
||||
begin
|
||||
Attr := Node.GetAttributeNode(Ident);
|
||||
if Assigned(Attr) then
|
||||
Result := Attr.NodeValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TXMLConfig.GetValue(const APath: WideString; ADefault: Integer): Integer;
|
||||
begin
|
||||
Result := StrToIntDef(GetValue(APath, ''),ADefault);
|
||||
end;
|
||||
|
||||
function TXMLConfig.GetValue(const APath: WideString; ADefault: Boolean): Boolean;
|
||||
var
|
||||
s: DOMString;
|
||||
begin
|
||||
s := GetValue(APath, '');
|
||||
|
||||
if WideSameText(s, 'TRUE') then
|
||||
Result := True
|
||||
else if WideSameText(s, 'FALSE') then
|
||||
Result := False
|
||||
else
|
||||
Result := ADefault;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetValue(const APath: WideString; const AValue: WideString);
|
||||
var
|
||||
Node: TDOMElement;
|
||||
Attr: TDOMAttr;
|
||||
Ident: DOMString;
|
||||
begin
|
||||
Node := FindNode(APath, Ident, [pfHasValue, pfWriteAccess]);
|
||||
|
||||
Attr := Node.GetAttributeNode(Ident);
|
||||
if (Attr = nil) or (Attr.NodeValue <> AValue) then
|
||||
begin
|
||||
Node[Ident] := AValue;
|
||||
FModified := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetDeleteValue(const APath: WideString; const AValue, DefValue: WideString);
|
||||
begin
|
||||
if AValue = DefValue then
|
||||
DeleteValue(APath)
|
||||
else
|
||||
SetValue(APath, AValue);
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetValue(const APath: WideString; AValue: Integer);
|
||||
begin
|
||||
SetValue(APath, IntToStr(AValue));
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetDeleteValue(const APath: WideString; AValue,
|
||||
DefValue: Integer);
|
||||
begin
|
||||
if AValue = DefValue then
|
||||
DeleteValue(APath)
|
||||
else
|
||||
SetValue(APath, AValue);
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetValue(const APath: WideString; AValue: Boolean);
|
||||
begin
|
||||
if AValue then
|
||||
SetValue(APath, 'True')
|
||||
else
|
||||
SetValue(APath, 'False');
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetDeleteValue(const APath: WideString; AValue,
|
||||
DefValue: Boolean);
|
||||
begin
|
||||
if AValue = DefValue then
|
||||
DeleteValue(APath)
|
||||
else
|
||||
SetValue(APath,AValue);
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.DeletePath(const APath: WideString);
|
||||
var
|
||||
Node: TDomNode;
|
||||
Ident: DOMString;
|
||||
begin
|
||||
Node := FindNode(APath, Ident, []);
|
||||
if Assigned(Node) and Assigned(Node.ParentNode) then
|
||||
begin
|
||||
Node.ParentNode.RemoveChild(Node);
|
||||
FPathDirty := True;
|
||||
FElement := nil;
|
||||
FModified := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.DeleteValue(const APath: WideString);
|
||||
var
|
||||
Node: TDOMElement;
|
||||
Ident: DOMString;
|
||||
Parent: TDOMNode;
|
||||
begin
|
||||
Node := FindNode(APath, Ident, [pfHasValue]);
|
||||
if Assigned(Node) then
|
||||
begin
|
||||
if Assigned(Node.GetAttributeNode(Ident)) then
|
||||
begin
|
||||
Node.RemoveAttribute(Ident);
|
||||
FModified := True;
|
||||
end;
|
||||
while (Node.FirstChild=nil) and Assigned(Node.ParentNode)
|
||||
and Assigned(Node.ParentNode.ParentNode) do
|
||||
begin
|
||||
if Node.HasAttributes then
|
||||
Break;
|
||||
Parent := Node.ParentNode;
|
||||
Parent.RemoveChild(Node);
|
||||
Node := TDOMElement(Parent);
|
||||
FPathDirty := True;
|
||||
FElement := nil;
|
||||
FModified := True;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.Loaded;
|
||||
begin
|
||||
inherited Loaded;
|
||||
if Length(Filename) > 0 then
|
||||
SetFilename(Filename); // Load the XML config file
|
||||
end;
|
||||
|
||||
// TODO: copied from dom.pp, make public there and delete here
|
||||
function CompareDOMStrings(const s1, s2: DOMPChar; l1, l2: integer): integer;
|
||||
var i: integer;
|
||||
begin
|
||||
Result:=l1-l2;
|
||||
i:=0;
|
||||
while (i<l1) and (Result=0) do begin
|
||||
Result:=ord(s1[i])-ord(s2[i]);
|
||||
inc(i);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TXMLConfig.FindNode(const APath: WideString; out Ident: DOMString;
|
||||
Flags: TPathFlags): TDOMElement;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
if FPathDirty then
|
||||
begin
|
||||
for I := 0 to FPathCount-1 do
|
||||
FElement := DoFindNode(FPathStack[I], FDummy, Flags - [pfHasValue]);
|
||||
FPathDirty := False;
|
||||
end;
|
||||
Result := DoFindNode(APath, Ident, Flags);
|
||||
end;
|
||||
|
||||
function TXMLConfig.DoFindNode(const APath: WideString; var Ident: DOMString;
|
||||
Flags: TPathFlags): TDomElement;
|
||||
var
|
||||
StartPos, EndPos: integer;
|
||||
PathLen: integer;
|
||||
Child: TDOMNode;
|
||||
begin
|
||||
if Assigned(FElement) and (Length(APath) > 0) and (APath[1] <> '/') then
|
||||
Result := FElement
|
||||
else
|
||||
Result := Doc.DocumentElement;
|
||||
|
||||
PathLen := Length(APath);
|
||||
StartPos := 1;
|
||||
if APath[StartPos] = '/' then Inc(StartPos);
|
||||
while Assigned(Result) do
|
||||
begin
|
||||
EndPos := StartPos;
|
||||
while (EndPos <= PathLen) and (APath[EndPos] <> '/') do
|
||||
Inc(EndPos);
|
||||
if (EndPos > PathLen) and (pfHasValue in Flags) then
|
||||
begin
|
||||
SetString(Ident, PWideChar(@APath[StartPos]), PathLen-StartPos+1);
|
||||
exit;
|
||||
end;
|
||||
if EndPos = StartPos then
|
||||
break;
|
||||
Child := Result.FirstChild;
|
||||
while Assigned(Child) and not ((Child.NodeType = ELEMENT_NODE)
|
||||
and (0 = CompareDOMStrings(DOMPChar(TDOMElement(Child).TagName), @APath[StartPos],
|
||||
Length(TDOMElement(Child).TagName), EndPos-StartPos))) do
|
||||
Child := Child.NextSibling;
|
||||
if (Child = nil) and (pfWriteAccess in Flags) then
|
||||
begin
|
||||
Child := Doc.CreateElementBuf(@APath[StartPos], EndPos-StartPos);
|
||||
Result.AppendChild(Child);
|
||||
end;
|
||||
Result := TDOMElement(Child);
|
||||
StartPos := EndPos + 1;
|
||||
if StartPos > PathLen then
|
||||
exit;
|
||||
end;
|
||||
Result := nil;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.DoSetFilename(const AFilename: String; ForceReload: Boolean);
|
||||
begin
|
||||
if (not ForceReload) and (FFilename = AFilename) then
|
||||
exit;
|
||||
FFilename := AFilename;
|
||||
|
||||
if csLoading in ComponentState then
|
||||
exit;
|
||||
|
||||
Flush;
|
||||
FreeAndNil(Doc);
|
||||
|
||||
if FileExists(AFilename) and not FStartEmpty then
|
||||
ReadXMLFile(Doc, AFilename);
|
||||
|
||||
if not Assigned(Doc) then
|
||||
Doc := TXMLDocument.Create;
|
||||
|
||||
if not Assigned(Doc.DocumentElement) then
|
||||
Doc.AppendChild(Doc.CreateElement(FRootName))
|
||||
else
|
||||
if Doc.DocumentElement.NodeName <> FRootName then
|
||||
raise EXMLConfigError.Create(SWrongRootName);
|
||||
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetFilename(const AFilename: String);
|
||||
begin
|
||||
DoSetFilename(AFilename, False);
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetRootName(const AValue: DOMString);
|
||||
var
|
||||
Cfg, Root: TDOMElement;
|
||||
begin
|
||||
if AValue <> FRootName then
|
||||
begin
|
||||
FRootName := AValue;
|
||||
Root := Doc.DocumentElement;
|
||||
Cfg := Doc.CreateElement(AValue);
|
||||
while Assigned(Root.FirstChild) do
|
||||
Cfg.AppendChild(Root.FirstChild);
|
||||
Doc.ReplaceChild(Cfg, Root);
|
||||
FModified := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.SetStartEmpty(AValue: Boolean);
|
||||
begin
|
||||
if AValue <> StartEmpty then
|
||||
begin
|
||||
FStartEmpty := AValue;
|
||||
if (not AValue) and not Modified then
|
||||
DoSetFilename(Filename, True);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.CloseKey;
|
||||
begin
|
||||
if FPathCount > 0 then
|
||||
begin
|
||||
FPathStack[FPathCount-1] := '';
|
||||
Dec(FPathCount);
|
||||
FElement := nil;
|
||||
FPathDirty := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.OpenKey(const aPath: WideString);
|
||||
begin
|
||||
if aPath <> '' then
|
||||
begin
|
||||
if FPathCount >= Length(FPathStack) then
|
||||
SetLength(FPathStack, FPathCount + 5);
|
||||
|
||||
FPathStack[FPathCount] := aPath;
|
||||
Inc(FPathCount);
|
||||
FElement := nil;
|
||||
FPathDirty := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TXMLConfig.ResetKey;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
for I := Length(FPathStack) downto 0 do
|
||||
FPathStack[I] := '';
|
||||
FElement := nil;
|
||||
FPathDirty := False;
|
||||
FPathCount := 0;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
end.
|
Loading…
Reference in New Issue
Block a user