I have just created my main method. I am creating the "parser" class in my
project, so this is not the final project yet. I create a class and test it
with a corresponding main when I have compiled without errors (well, with
the only one that there is no main). Now there are 8 errors (with the main
defined).
See the quoted text, please.
2007/11/29, Alberto Massari <[EMAIL PROTECTED]>:
>
> Javier Gálvez Guerrero wrote:
> > Sorry, I didn't find the "additional libraries" but now these to lib's
> are
> > added. However, now appear 10 errors...(before, they were 74).
> >
> > Creando archivo temporal "d:\Ser teleco
> > mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug
> \RSP00000716012284764.rsp"
> > con contenido
> > [
> > /OUT:"D:\Ser teleco
> > mola\IPTV\Aplicación\Desarrollo\dIPTV\Debug\contents_manager.exe"
> > /INCREMENTAL /LIBPATH:"D:\Ser teleco
> > mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\lib" /MANIFEST
> > /MANIFESTFILE:"Debug\contents_manager.exe.intermediate.manifest"
> > /DEBUG /ASSEMBLYDEBUG /PDB:"d:\Ser teleco
> > mola\IPTV\Aplicación\Desarrollo\dIPTV\debug\contents_manager.pdb"
> > /SUBSYSTEM:CONSOLE /MACHINE:X86 /FIXED:No xerces-c_2.lib
> > xerces-c_2D.lib kernel32.lib
> >
> > ".\Debug\contents_manager.obj"
> > ]
> > Creando línea de comandos "link.exe @"d:\Ser teleco
> > mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug
> \RSP00000716012284764.rsp"
> > /NOLOGO /ERRORREPORT:PROMPT"
> >
> > Ventana Resultados
> >
> > Vinculando...
> > contents_manager.obj : warning LNK4248: símbolo (token) de typeref sin
> > resolver (01000019) para 'xercesc_2_8.XMLValidator'; no se puede
> > ejecutar la imagen
> > contents_manager.obj : warning LNK4248: símbolo (token) de typeref sin
> > resolver (0100001A) para 'xercesc_2_8.XMLGrammarPool'; no se puede
> > ejecutar la imagen
> >
> I guess you meant writing xercesc_2_8::XMLGrammarPool (i.e. "::" instead
> of ".")
I have only copied what the Visual C++ 2005 has given as an output when
compiling the project. It appears xercesc_2.8.XMLGrammarPool, dot and not a
colon. Actually, I have not used this on my project. I've only created a
parser and worked with the DOMNode API:
// contents_manager.cpp
#include "../include/gincludes.h"
#include "contents_manager.h"
//...
void contents_manager::load_guide(string xml_path){
XMLPlatformUtils::Initialize();
XercesDOMParser* parser = new XercesDOMParser();
parser->parse(xml_path.c_str());
DOMNode* root = parser->getDocument();
DOMNode* child_aux1, *child_aux2, *child_aux3, *child_aux4, *child_aux5,
*child_aux6, *child_aux7;
// Check that the XML file defines the content guide
if(XMLString::transcode(root->getNodeName()) == "contents"){
for(child_aux1 = root->getFirstChild(); child_aux1 != NULL;
child_aux1 = child_aux1->getNextSibling()){
char* child1_name =
XMLString::transcode(child_aux1->getNodeName());
//...
delete parser;
XMLPlatformUtils::Terminate();
}
That is the only I have done in my class regarding Xerces. In the header
file I have included these:
//contents_manager.h
#include "../include/gincludes.h"
#include "../content/content.h"
#include <xercesc/dom/DOM.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/dom/DOMImplementationLS.hpp>
#include <xercesc/dom/DOMWriter.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/dom/DOM.hpp>
#include <xercesc/sax/HandlerBase.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/PlatformUtils.hpp>
using namespace System;
using namespace System::Runtime::InteropServices;
using namespace std;
XERCES_CPP_NAMESPACE_USE
class contents_manager {
//...
So that's all.
> contents_manager.obj : error LNK2028: se hace referencia al símbolo
> > (token) sin resolver (0A00043C) "public: __thiscall
> > content::content(class std::basic_string,class std::allocator >)"
> > (??0content@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@
> [EMAIL PROTECTED]@2@@std@@@Z)
> > en la función "public: class content __thiscall
> > contents_manager::get_content(class std::basic_string,class
> > std::allocator >)"
> > ([EMAIL PROTECTED]@@$$FQAE?AVcontent@@[EMAIL PROTECTED]
> [EMAIL PROTECTED]@std@@[EMAIL PROTECTED]@2@@std@@@Z)
> > contents_manager.obj : error LNK2028: se hace referencia al símbolo
> > (token) sin resolver (0A00043D) "public: __thiscall
> > content::content(void)" (??0content@@[EMAIL PROTECTED]) en la función
> > "public:
> > class content __thiscall contents_manager::get_content(class
> > std::basic_string,class std::allocator >)"
> > ([EMAIL PROTECTED]@@$$FQAE?AVcontent@@[EMAIL PROTECTED]
> [EMAIL PROTECTED]@std@@[EMAIL PROTECTED]@2@@std@@@Z)
> > ...
> >
> You are including a library that exposes a contents_manager class, but
> you didn't add the corresponding LIB file in the 'additional libraries'
> (you should know the name of the library, contents_manager is not part
> of Xerces)
What do you mean? The only libs I am using are these from Xerces.
Contents_manager is the class I've just created with nothing strange at all
(or this is what I think...).
> MSVCRTD.lib(crtexe.obj) : error LNK2019: símbolo externo _main sin
> > resolver al que se hace referencia en la función ___tmainCRTStartup
> > D:\Ser teleco mola\IPTV\Aplicación\Desarroll
> o\dIPTV\Debug\contents_manager.exe
> >
> Have you written a main() method?
>
> Alberto
> > : fatal error LNK1120: 9 externos sin resolver
> >
> >
> > Should I declare anything like an extern????
> >
> > Javi
> >
> >
> > 2007/11/29, Javier Gálvez Guerrero <[EMAIL PROTECTED]>:
> >
> >> I have added the two lib paths in Tools | Options | Project Solutions |
> >> VC++ Directories (selecting Library files) and Project | Properities |
> >> Linker | General | Additional library folders (Selecting the "All
> >> configurations" on Configuration combo on top left.
> >>
> >> And in the BuildLog.htm file appears this:
> >>
> >>
> >> Creando archivo temporal "d:\Ser teleco
> mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug\RSP00000416012186844.rsp"
> con contenido
> >>
> >> [
> >> /OUT:"D:\Ser teleco
> mola\IPTV\Aplicación\Desarrollo\dIPTV\Debug\contents_manager.exe"
> /INCREMENTAL /LIBPATH:"D:\Ser teleco
> mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\lib"
> >> /MANIFEST
> /MANIFESTFILE:"Debug\contents_manager.exe.intermediate.manifest" /DEBUG
> /ASSEMBLYDEBUG /PDB:"d:\Ser teleco
> mola\IPTV\Aplicación\Desarrollo\dIPTV\debug\contents_manager.pdb"
> /SUBSYSTEM:CONSOLE /MACHINE:X86 /FIXED:No
> >> kernel32.lib
> >>
> >> ".\Debug\contents_manager.obj"
> >> ]
> >> Creando línea de comandos "link.exe @"d:\Ser teleco
> mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug\RSP00000416012186844.rsp"
> /NOLOGO /ERRORREPORT:PROMPT"
> >>
> >>
> >>
> >> So it seems I have added properly the folder but it does not work. This
> >> folder contains xerces_c_2.lib, xerces_c_2D.lib and static(2) and
> depdom (4)
> >> extensions, 8 files.
> >>
> >> I don't know if I need to configure anything more... I am so sorry, but
> >> can you help me, please? I promise you that as soon as I can link
> properly I
> >> will ask more "interesting" questions..haha.
> >>
> >> Thank you a lot,
> >> Javi
> >>
> >>
> >> 2007/11/29, Alberto Massari <[EMAIL PROTECTED]>:
> >>
> >>> Javier,
> >>> the same operation you did for the include folder should be done for
> the
> >>> lib folder (using the Link property page of the Project properties if
> >>> you want to fix just this project, or using the VC++ Directories
> >>> property page in the Tools | Options menu, after selecting Library
> files
> >>> in the combo box).
> >>> In case you didn't already do it, you also need to list xerces_2.lib
> >>> (for release builds) and xerces_2D.lib (for debug builds) in the
> >>> 'additional libraries' entry of the project properties.
> >>>
> >>> Alberto
> >>>
> >>> Javier Gálvez Guerrero wrote:
> >>>
> >>>> I think that the attachement doesn't work properly, so I'll copy
> paste
> >>>>
> >>> the
> >>>
> >>>> first outputs:
> >>>>
> >>>> Vinculando... contents_manager.obj : warning LNK4248: símbolo (token)
> >>>>
> >>> de
> >>>
> >>>> typeref sin resolver (01000019) para 'xercesc_2_8.XMLValidator'; no
> se
> >>>>
> >>> puede
> >>>
> >>>> ejecutar la imagen contents_manager.obj: warning LNK4248: símbolo
> >>>>
> >>> (token) de
> >>>
> >>>> typeref sin resolver (0100001A) para 'xercesc_2_8.XMLGrammarPool'; no
> >>>>
> >>> se
> >>>
> >>>> puede ejecutar la imagen contents_manager.obj : error LNK2028: se
> hace
> >>>> referencia al símbolo (token) sin resolver (0A0003AE) "public: class
> >>>> xercesc_2_8::DOMDocument * __thiscall
> >>>> xercesc_2_8::AbstractDOMParser::getDocument(void)" (?getDocument@
> >>>> [EMAIL PROTECTED]@@[EMAIL PROTECTED]@XZ) en la
> >>>>
> >>> función
> >>>
> >>>> "public: void __thiscall contents_manager::load_guide(class
> >>>> std::basic_string,class std::allocator >)"
> >>>> ([EMAIL PROTECTED]@@$$FQAEXV?$basic_string@
> >>>>
> >>> [EMAIL PROTECTED]
> >>>
> >>>> @std@@[EMAIL PROTECTED]@2@@std@@@Z)
> >>>>
> >>>> Sorry for the inconvenience,
> >>>> Javi
> >>>>
> >>>> 2007/11/28, Javier Gálvez Guerrero <[EMAIL PROTECTED]>:
> >>>>
> >>>>
> >>>>> Should I configure anything for the linking files as I did with the
> >>>>> Include?
> >>>>>
> >>>>> I have compiled my code with no errors, but at the time of linking
> >>>>>
> >>> appear
> >>>
> >>>>> lots of errors (BuildLog.htm attached).
> >>>>>
> >>>>> Thank you,
> >>>>> Javi
> >>>>>
> >>>>> PS: Jesse, thanks a lot for your explanation about System.XML and
> its
> >>>>> features. I am trying to design an application as multiplatform as
> >>>>>
> >>> possible
> >>>
> >>>>> and now that I have started with Xerces I would like to use it. But
> >>>>>
> >>> it's
> >>>
> >>>>> good to know all the alternatives out there. =).
> >>>>>
> >>>>>
> >>>>>
> >>>>> 2007/11/28, Jesse Pelton <[EMAIL PROTECTED]>:
> >>>>>
> >>>>>
> >>>>>> Regarding System.XML versus Xerces: Xerces exists to provide a
> >>>>>>
> >>> solid,
> >>>
> >>>>>> open-source, cross-platform implementation of certain XML standards
> >>>>>>
> >>> for C++
> >>>
> >>>>>> developers. Almost all C++ developers are using unmanaged code; I
> >>>>>>
> >>> think
> >>>
> >>>>>> you're the first I've heard of using Xerces with managed C++.
> >>>>>>
> >>>>>> To the extent that you're in a managed-code environment, Mono's
> >>>>>> implementation of System.XML may fulfill the same requirements. If
> >>>>>> you're targeting Windows exclusively, the cross-platform issue is
> of
> >>>>>>
> >>> no
> >>>
> >>>>>> consequence; you'll use the Microsoft implementation. My
> >>>>>>
> >>> understanding is
> >>>
> >>>>>> that System.XML is well-designed and robust, but I can't vouch for
> >>>>>>
> >>> that
> >>>
> >>>>>> myself. That leaves openness; if that's not important for your
> >>>>>>
> >>> project,
> >>>
> >>>>>> System.XML would probably be at least as good a fit as Xerces (and
> I
> >>>>>>
> >>>>>> imagine there's a large community of managed code developers who
> can
> >>>>>>
> >>> help
> >>>
> >>>>>> you out, though not one of them is as good as Alberto). Using
> >>>>>> System.XML would avoid redundancy: you wouldn't have to distribute,
> >>>>>>
> >>> and
> >>>
> >>>>>> your developers wouldn't have to understand, an additional library.
> >>>>>>
> >>>>>> This is not to say that you shouldn't use Xerces; it's a great
> >>>>>> library. Just know your options.
> >>>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Javier Gálvez Guerrero [mailto:[EMAIL PROTECTED]
> >>>>>> Sent: Wednesday, November 28, 2007 12:15 PM
> >>>>>> To: [email protected]
> >>>>>> Subject: Re: How to parse using DOM
> >>>>>>
> >>>>>> Alberto,
> >>>>>> Thanks again. Everything worked fine.
> >>>>>>
> >>>>>> By the way, as I use getNodeValue and getNodeName to process and
> >>>>>>
> >>> assign
> >>>
> >>>>>> them
> >>>>>> to my C++ structures I need to parse the XMLCh* returned value to
> >>>>>> String^
> >>>>>> buy I couldn't find any way to do it. Any idea?
> >>>>>>
> >>>>>> Jesse,
> >>>>>> That's a good question..xD. There are many reasons why I am trying
> >>>>>>
> >>> to
> >>>
> >>>>>> use
> >>>>>> Xerces in order to parse and create XML files. Maybe you'll find
> >>>>>>
> >>> them
> >>>
> >>>>>> stupid.
> >>>>>>
> >>>>>> Firstly, I am an absolute newbie with C++ as with Xerces (as you
> >>>>>>
> >>> have
> >>>
> >>>>>> already realized). So, I did no research on XML classes offered by
> >>>>>>
> >>> the
> >>>
> >>>>>> .NET
> >>>>>> framework as I didn't know them.
> >>>>>> Secondly, I am developing an application based on a previous
> version
> >>>>>> which
> >>>>>> was developed by another person, who based his app on Xerces to
> >>>>>>
> >>> parse
> >>>
> >>>>>> XML
> >>>>>> files. The problem is that his design didn't take into account
> >>>>>>
> >>> creating
> >>>
> >>>>>> or
> >>>>>> writing on XML files, only parsing and reading, so he used the SAX
> >>>>>>
> >>> API.
> >>>
> >>>>>> Then, I had to switch from SAX to DOM and facing all the problems
> it
> >>>>>> implies
> >>>>>> (creating a NEW app).
> >>>>>> Thirdly, I thought I could find some help if I based my design on a
> >>>>>>
> >>> open
> >>>
> >>>>>> source solution like Xerces is, and here it is.
> >>>>>>
> >>>>>> Then, if you tell me that it is worth for me working with the
> >>>>>>
> >>> System:XML
> >>>
> >>>>>> files, then I would think about it..haha. But then, what is Xerces
> >>>>>>
> >>> for
> >>>
> >>>>>> if
> >>>>>> everybody can manage their XML files with these classes?
> >>>>>>
> >>>>>> Cheers,
> >>>>>> Javi
> >>>>>>
> >>>>>> 2007/11/28, Jesse Pelton < [EMAIL PROTECTED]>:
> >>>>>>
> >>>>>>
> >>>>>>> Just out of curiosity, if you're using managed code, why aren't
> you
> >>>>>>>
> >>>>>>>
> >>>>>> using
> >>>>>>
> >>>>>>
> >>>>>>> the System.XML classes?
> >>>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: Javier Gálvez Guerrero [mailto:[EMAIL PROTECTED]
> >>>>>>> Sent: Wednesday, November 28, 2007 11:03 AM
> >>>>>>> To: [email protected]
> >>>>>>> Subject: Re: How to parse using DOM
> >>>>>>>
> >>>>>>> Hi there.
> >>>>>>>
> >>>>>>> Now I can compile the source code file where I have implemented
> (or
> >>>>>>>
> >>>>>>>
> >>>>>> tried
> >>>>>>
> >>>>>>
> >>>>>>> it...) the DOM parser, some errors have appeared. As they seem
> >>>>>>>
> >>> quite
> >>>
> >>>>>>> simple
> >>>>>>> I hope you could help me again:
> >>>>>>>
> >>>>>>> The method in file.cpp is like this (I have followed the
> guidelines
> >>>>>>> < http://xerces.apache.org/xerces-c/program-dom.html>on Xerces
> >>>>>>>
> >>> site,
> >>>
> >>>>>> except
> >>>>>>
> >>>>>>
> >>>>>>> for the exception treatment...):
> >>>>>>>
> >>>>>>> void contents_manager::load_guide(String^ xml_path){
> >>>>>>>
> >>>>>>> XMLPlatformUtils::Initialize();
> >>>>>>> XercesDOMParser* parser = new XercesDOMParser();
> >>>>>>>
> >>>>>>> parser->parse(xml_path);
> >>>>>>> DOMNode* root = parser->getDocument(); //child_aux1 will be
> the
> >>>>>>>
> >>>>>>>
> >>>>>> first
> >>>>>>
> >>>>>>
> >>>>>>> child of root
> >>>>>>> DOMNode* child_aux1, child_aux2, child_aux3, child_aux4,
> >>>>>>>
> >>>>>>>
> >>>>>> child_aux5,
> >>>>>>
> >>>>>>
> >>>>>>> child_aux6, child_aux7; // Compiling errors referring to this line
> >>>>>>>
> >>>>>>> //...
> >>>>>>>
> >>>>>>> In file.h this is included:
> >>>>>>>
> >>>>>>> #include "../include/gincludes.h"
> >>>>>>> #include "../content/content.h"
> >>>>>>> #include <xercesc/dom/DOM.hpp>
> >>>>>>> #include <xercesc/dom/DOMImplementation.hpp>
> >>>>>>> #include <xercesc/dom/DOMImplementationLS.hpp>
> >>>>>>> #include <xercesc/dom/DOMWriter.hpp>
> >>>>>>> #include <xercesc/util/PlatformUtils.hpp>
> >>>>>>> #include <xercesc/parsers/XercesDOMParser.hpp>
> >>>>>>> #include <xercesc/dom/DOM.hpp>
> >>>>>>> #include <xercesc/util/XMLString.hpp>
> >>>>>>> #include <xercesc/util/PlatformUtils.hpp>
> >>>>>>>
> >>>>>>> using namespace System;
> >>>>>>>
> >>>>>>> XERCES_CPP_NAMESPACE_USE
> >>>>>>>
> >>>>>>> // class definition...
> >>>>>>>
> >>>>>>> Then, when compiling a lot of errors appear saying that it can not
> >>>>>>>
> >>> be
> >>>
> >>>>>> done
> >>>>>>
> >>>>>>
> >>>>>>> as I am working with abstracts, referring to the previous red
> >>>>>>>
> >>> line...
> >>>
> >>>>>>> 1>.\contents_manager.cpp(17) : error C2259: xercesc_2_8::DOMNode'
> :
> >>>>>>>
> >>> no
> >>>
> >>>>>> se
> >>>>>>
> >>>>>>
> >>>>>>> puede crear una instancia de una clase abstract
> >>>>>>> 1> debido a los siguientes miembros:
> >>>>>>> 1> 'const XMLCh *xercesc_2_8::DOMNode::getNodeName(void)
> >>>>>>>
> >>> const'
> >>>
> >>>>>> :
> >>>>>>
> >>>>>>
> >>>>>>> es
> >>>>>>> abstracto
> >>>>>>> 1> D:\Ser teleco
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>
> mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\include\xercesc/dom/DOMNode.hpp(246)
> >>>
> >>>
> >>>>>>> : vea la declaración de 'xercesc_2_8::DOMNode::getNodeName'
> >>>>>>> 1> 'const XMLCh *xercesc_2_8::DOMNode::getNodeValue(void)
> >>>>>>>
> >>>>>>>
> >>>>>> const' :
> >>>>>>
> >>>>>>
> >>>>>>> es
> >>>>>>> abstracto
> >>>>>>> 1> D:\Ser teleco
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>
> mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\include\xercesc/dom/DOMNode.hpp(255)
> >>>
> >>>
> >>>>>>> : vea la declaración de 'xercesc_2_8::DOMNode::getNodeValue'
> >>>>>>> 1> 'short xercesc_2_8::DOMNode::getNodeType(void) const' :
> >>>>>>>
> >>> es
> >>>
> >>>>>>> abstracto
> >>>>>>> ...
> >>>>>>>
> >>>>>>> Any idea of what I need to do regarding this error?
> >>>>>>>
> >>>>>>>
> >>>>>>> By the way, as you may have seen on the arguments of my method,
> the
> >>>>>>>
> >>>>>>> name/path of the XML file is received with String^ type, so, as I
> >>>>>>>
> >>> need
> >>>
> >>>>>> to
> >>>>>>
> >>>>>>
> >>>>>>> have a char* as an argument for parse->parse(file_name), how can I
> >>>>>>>
> >>>>>>>
> >>>>>> parse
> >>>>>>
> >>>>>>
> >>>>>>> it?
> >>>>>>>
> >>>>>>> Thank you very much,
> >>>>>>>
> >>>>>>> Javi
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> 2007/11/28, Sven Bauhan <[EMAIL PROTECTED]>:
> >>>>>>>
> >>>>>>>
> >>>>>>>>> This is not true. std::string and UTF-8 are fully compatible,
> as
> >>>>>>>>>
> >>>>>> long
> >>>>>>
> >>>>>>
> >>>>>>>> as
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> you make no assumptions about chopping things up at arbitrary
> >>>>>>>>>
> >>>>>>>>>
> >>>>>> indices,
> >>>>>>
> >>>>>>
> >>>>>>>> or
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> the relationship of Unicode code points and UTF-8 code
> units. At
> >>>>>>>>>
> >>>>>>>>>
> >>>>>> any
> >>>>>>
> >>>>>>
> >>>>>>>> rate,
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> with a double-byte or multi-byte locale code page, you'd have
> the
> >>>>>>>>>
> >>>>>>>>>
> >>>>>> same
> >>>>>>
> >>>>>>
> >>>>>>>>> issues.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>> I do not really understand what you want to say here. As far as I
> >>>>>>>>
> >>>>>>>>
> >>>>>> know
> >>>>>>
> >>>>>>
> >>>>>>>> std::string stores strings in single byte units. In UTF-8 the
> >>>>>>>>
> >>> units
> >>>
> >>>>>> have
> >>>>>>
> >>>>>>
> >>>>>>>> variable length between 1 and 4 bytes. So I cannot see a match
> >>>>>>>>
> >>> here.
> >>>
> >>>>>>>> I thought to use UTF-8 with the STL you need something like
> >>>>>>>> std::basic_string<UTFChar>.
> >>>>>>>>
> >>>>>>>> Could you tell me, how to transcode the XMLChar* correctly using
> >>>>>>>>
> >>>>>>>>
> >>>>>> UTF-8?
> >>>>>>
> >>>>>>
> >>>>>>>> Sven
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>
> >>>>
> >>>
> >
> >
>
>