From boris at codesynthesis.com Mon Dec 2 05:50:09 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Dec 2 05:52:34 2013 Subject: [xsd-users] general enquiry In-Reply-To: <08fdb55eecc94319b6e4d9a49e111f7f@HKXPR04MB182.apcprd04.prod.outlook.com> References: <08fdb55eecc94319b6e4d9a49e111f7f@HKXPR04MB182.apcprd04.prod.outlook.com> Message-ID: Hi Tibor, Tibor Guba writes: > Ideally I am looking for a solution where I can add my ebms:Messaging > object hierarchy to soap:Header using the any() member The 'wildcard' example found in the examples/cxx/tree/ directory shows how to do pretty much exactly that. > without extensive use of xerces-c API There will be a bit of Xerces-C++ code since the wildcard content (xs:any) is raw XML. But that code can be localized and re-used quite easily. Take a look at the 'wildcard' example: most of the Xerces-C++ code that you will need is shown there so you can just copy the relevant parts. Boris From Chris.Delnooz at hydrix.com Tue Dec 3 21:41:40 2013 From: Chris.Delnooz at hydrix.com (Chris Delnooz) Date: Tue Dec 3 21:41:55 2013 Subject: [xsd-users] Map types on std::pair and std::map Message-ID: <1ABD3AB5D5D0DC439E0C9617AC6DF683B9F456@ALLEXCH.alloratech.local> Hi all, I am wondering if it would be possible to map certain complex types onto std::pair and std::map or something that behaves similarly. Basically, I have the following types: Ideally, I would like to map this on a std::pair, I have the feeling I should be able to do that with a bit of tinkering along the lines of the xsd:datetime example, but I can't quite grasp it yet. In the second case, I have something like the following snippet In this case I would ideally end up with "allowedFeatures" being a std::map >. This would probably involve mapping EnabledFeatures onto a pair again, but is there any way to generate a map-like container out of the "allowedFeatures" association? Any thoughts would be greatly appreciated! Chris Delnooz | Software Architect? chris.delnooz@hydrix.com? Hydrix:?Our Expertise - Your Competitive Advantage? www.hydrix.com?| fax +61 3 8573 5289 | direct +61 3 8573 5248 From flzalex10 at gmail.com Wed Dec 4 02:28:44 2013 From: flzalex10 at gmail.com (Fan Lizhi) Date: Wed Dec 4 02:29:08 2013 Subject: [xsd-users] is there anyone can send me a free license agreement of XSD, thank you very much! Message-ID: From flzalex10 at gmail.com Wed Dec 4 04:51:18 2013 From: flzalex10 at gmail.com (Fan Lizhi) Date: Wed Dec 4 04:51:32 2013 Subject: [xsd-users] is there anyone can send me a free license agreement of XSD, thank you very much! Message-ID: <0hp9xhy0pke9xsprewy5km7f.1386150678753@email.android.com> thx Boris Kolpackov ??? >Fan, > >Please don't send questions about licensing to the xsd-users mailing >list. This list is for technical discussions. In the future please >used the info@codesynthesis.com for similar queries. > >You can download the free proprietary license agreement for >CodeSynthesis XSD via the following link: > >http://www.codesynthesis.com/licenses/CodeSynthesis_XSD_Free_License.pdf > >The current and future versions of XSD for all supported >platforms are available from the XSD download page: > >http://www.codesynthesis.com/products/xsd/download.xhtml > >If you would like to get notified about new releases of XSD, you >can join the xsd-announcements mailing list: > >http://www.codesynthesis.com/mailman/listinfo/xsd-announcements > >Or subscribe to the RSS news feed: > >http://www.codesynthesis.com/products/xsd/news.rss > >For free, best-effort technical support, email >xsd-users@codesynthesis.com (public mailing list). You may >also find the following information a faster way to answer >your questions: > >C++/Tree Mapping Documentation: > > http://www.codesynthesis.com/products/xsd/c++/tree/ > >C++/Parser Mapping Documentation: > > http://www.codesynthesis.com/products/xsd/c++/parser/ > >Wiki (includes FAQs, HOWTOs, etc): > > http://wiki.codesynthesis.com > >Searchable xsd-users mailing list archives (4+ years of questions >and answers): > > http://www.codesynthesis.com/pipermail/xsd-users/ > >There are two options in the compiler that you will find useful >with the free proprietary license. The first is --proprietary-license. >It allows you to remove the GPL license banner from the generated >C++ files. > >The second is --sloc-limit. It helps to keep track of how much >generated code you use and prevent you from violating the licensing >terms. If the generated C++ files will result in more lines of code >than specified with this option, the compiler will terminate with >an error. If your schema is spread over several files, then there >are two possible ways to handle this. The first option is to compile >all the schema files with one compiler invocation, for example: > >xsd cxx-tree --sloc-limit 10000 file1.xsd file2.xsd > >The compiler will make sure that the combined number of lines does >not exceed the specified limit. The second option is to compile each >file separately (e.g., using make) and to split the limit across >several files, for example: > >xsd cxx-tree --sloc-limit 6000 file1.xsd > >xsd cxx-tree --sloc-limit 4000 file2.xsd > >Please let me know if you have any questions. > > >Best regards, > >Boris Kolpackov >Founder & CTO >Code Synthesis Tools CC >http://www.codesynthesis.com >tel: +27 76 1672134 >fax: +27 21 5526869 > > >----- Original Message ----- >From: "Fan Lizhi" >Subject: [xsd-users] is there anyone can send me a free license agreement of XSD, thank you very much! >Date: Wed, 04 Dec, 2013 15:28 +0800 > From boris at codesynthesis.com Wed Dec 4 06:02:31 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Wed Dec 4 06:04:55 2013 Subject: [xsd-users] Map types on std::pair and std::map In-Reply-To: <1ABD3AB5D5D0DC439E0C9617AC6DF683B9F456@ALLEXCH.alloratech.local> References: <1ABD3AB5D5D0DC439E0C9617AC6DF683B9F456@ALLEXCH.alloratech.local> Message-ID: Hi Chris, Chris Delnooz writes: > I am wondering if it would be possible to map certain complex types > onto std::pair and std::map or something that behaves similarly. While you cannot map generated types to std::pair or std::map directly, you can map them to types derived from these standard types. This will make them pretty much eqivalent since you will be able to pass your custom types where one of the standard types is expected. For example: class LabelWeight: public std::std::pair { ... }; The way to achieve this is to use the type customization mechanism provided by C++/Tree. For more information on type customization see the C++/Tree Mapping Customization Guide: http://wiki.codesynthesis.com/Tree/Customization_guide As well as the examples in the examples/cxx/tree/custom/ directory. The one that is the closest to what you are trying to do is probably 'contacts'. Boris From greenc at fnal.gov Thu Dec 5 01:18:39 2013 From: greenc at fnal.gov (Chris Green) Date: Thu Dec 5 01:18:46 2013 Subject: [xsd-users] Mac OS X need to link against static Boost / xerces_c Message-ID: <52A01ABF.5040105@fnal.gov> Hi, We've been building on linux for a while now linked against static Boost and xerces_c libraries by starting with the rollup source (e.g. xsd-3.3.0-2+dep.tar.bz2) and applying patches of the form: --- libxsd-frontend/build/import/libxsd-frontend/stub.make 2010-04-27 14:31:24.000000000 -0500 +++ libxsd-frontend/build/import/libxsd-frontend/stub.make 2013-04-24 13:25:00.164019000 -0500 @@ -13,7 +13,7 @@ ifeq ($(libxsd_frontend_installed),y) -$(call export,l: -lxsd-frontend -lfrontend-elements -lcult -lboost_filesystem -lxerces-c,cpp_options: ) +$(call export,l: -lxsd-frontend -lfrontend-elements -lcult $(BOOST_LIB)/libboost_filesystem.a $(XERCESCROOT)/lib/libxerces-c.a /lib64/libpthread.so.0,cpp_options: ) else This works just fine on linux (RHEL5 and 6 derivatives). However, an attempt to do something analogous (without the pthread, of course) for a build on Mountain Lion produces link errors of the form: make VERBOSE=1 install_prefix=/Users/greenc/work/cet-is/test-products/cstxsd/v3_3_0_p02a/Darwin64bit+12-gcc48 CXXFLAGS="-O3 -gdwarf-2 -I${BOOST_FQ_DIR}/include -I${XERCESCROOT}/includde" CPPFLAGS="-I${BOOST_FQ_DIR}/include -I${XERCESCROOT}/include" install ld /Users/greenc/work/cet-is/test-products/cstxsd/v3_3_0_p02a/Darwin64bit+12-gcc48/xsd-3.3.0-2+dep/xsd/xsd/xsd Undefined symbols for architecture x86_64: "_CFRelease", referenced from: xercesc_3_1::MacOSUnicodeConverter::upperCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) xercesc_3_1::MacOSUnicodeConverter::lowerCase(unsigned short*) in libxerces-c.a(MacOSUnicodeConverter.o) I'm by no means an expert compiling on OS X, although it seems that the static xerces_c library introduces a need to link against (at least) the CoreFoundations framework. Unfortunately I have been unable to decipher the make / build-3.0 abstractions to the point where I can get something to work. Any suggestions would be appreciated. I should note that we need to do this because all of our own code is built for C++2011 (-std=c++11), and therefore C++2011-compiled versions of Boost and xerces_c are what are available in LD_LIBRARY_PATH at the time we are invoking xsd -- either xsd has to be compiled statically against these libraries or it must be compiled C++2011. We have been unable to do the latter thus far, so we've been relying on the former solution. With our new need to have this working under Mac OS X however, our old solution has not translated in the trivial way we would have liked. I'm at the limits of my competency in this area, I'm afraid, so pointers gratefully received. Thanks, Chris. From boris at codesynthesis.com Thu Dec 5 02:21:30 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Dec 5 02:23:58 2013 Subject: [xsd-users] Mac OS X need to link against static Boost / xerces_c In-Reply-To: <52A01ABF.5040105@fnal.gov> References: <52A01ABF.5040105@fnal.gov> Message-ID: Hi Chris, Chris Green writes: > We've been building on linux for a while now linked against static > Boost and xerces_c libraries by starting with the rollup source > (e.g. xsd-3.3.0-2+dep.tar.bz2) and applying patches of the form: You should be able to do this without patching using the LDFLAGS and LIBS make variables (described in the README file). Something along these lines: make LDFLAGS="-L$(BOOST_LIB) -L$(XERCESCROOT)/lib" LIBS=-lpthread If you are using GNU make 3.81 (which you most likely are on OS X), then you will also need to add .LIBPATTERNS=lib%.a as described in this post: http://codesynthesis.com/pipermail/xsd-users/2013-May/003937.html > I'm by no means an expert compiling on OS X, although it seems that > the static xerces_c library introduces a need to link against (at > least) the CoreFoundations framework. Yes, adding "-framework CoreFoundation" to the LIBS variable as shown above should do the trick. > I should note that we need to do this because all of our own code is > built for C++2011 (-std=c++11), and therefore C++2011-compiled > versions of Boost and xerces_c are what are available in > LD_LIBRARY_PATH at the time we are invoking xsd -- either xsd has to > be compiled statically against these libraries or it must be > compiled C++2011. We have been unable to do the latter thus far Will try to make sure XSD compiles in the C++11 mode for the upcoming release. Boris From michael.wacenovsky at siemens.com Thu Dec 5 08:40:30 2013 From: michael.wacenovsky at siemens.com (Wacenovsky, Michael) Date: Thu Dec 5 09:13:33 2013 Subject: [xsd-users] Error linking with xerces-c_static_3.lib Message-ID: <26F762CE18B1D240B3E3A2CAC0039367056E49@ATVIES991UDMSX.ww300.siemens.net> Hello ! I downloaded xerces-c_static_3.lib to statically link my project, using DOM tree parser. I get following errors: 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?Terminate@XMLPlatformUtils@xercesc_3_1@@SAXXZ (public: static void __cdecl xercesc_3_1::XMLPlatformUtils::Terminate(void)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?Initialize@XMLPlatformUtils@xercesc_3_1@@SAXQBD0QAVPanicHandler@2@QAVMemoryManager@2@@Z (public: static void __cdecl xercesc_3_1::XMLPlatformUtils::Initialize(char const * const,char const * const,class xercesc_3_1::PanicHandler * const,class xercesc_3_1::MemoryManager * const)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercescDefaultLocale@XMLUni@xercesc_3_1@@2QBDB (public: static char const * const xercesc_3_1::XMLUni::fgXercescDefaultLocale) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1InputSource@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::InputSource::~InputSource(void)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_istream > &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@AAV?$basic_istream@DU?$char_traits@D@std@@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0InputSource@xercesc_3_1@@IAE@QAVMemoryManager@1@@Z (protected: __thiscall xercesc_3_1::InputSource::InputSource(class xercesc_3_1::MemoryManager * const)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_istream > &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@AAV?$basic_istream@DU?$char_traits@D@std@@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgMemoryManager@XMLPlatformUtils@xercesc_3_1@@2PAVMemoryManager@2@A (public: static class xercesc_3_1::MemoryManager * xercesc_3_1::XMLPlatformUtils::fgMemoryManager) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??3XMemory@xercesc_3_1@@SAXPAX@Z (public: static void __cdecl xercesc_3_1::XMemory::operator delete(void *)) imported in function __unwindfunclet$?makeStream@std_input_source@sax@xml@cxx@xsd@@UBEPAVBinInputStream@xercesc_3_1@@XZ$0 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0BinInputStream@xercesc_3_1@@IAE@XZ (protected: __thiscall xercesc_3_1::BinInputStream::BinInputStream(void)) imported in function "public: virtual class xercesc_3_1::BinInputStream * __thiscall xsd::cxx::xml::sax::std_input_source::makeStream(void)const " (?makeStream@std_input_source@sax@xml@cxx@xsd@@UBEPAVBinInputStream@xercesc_3_1@@XZ) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??2XMemory@xercesc_3_1@@SAPAXI@Z (public: static void * __cdecl xercesc_3_1::XMemory::operator new(unsigned int)) imported in function "public: virtual class xercesc_3_1::BinInputStream * __thiscall xsd::cxx::xml::sax::std_input_source::makeStream(void)const " (?makeStream@std_input_source@sax@xml@cxx@xsd@@UBEPAVBinInputStream@xercesc_3_1@@XZ) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1BinInputStream@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::BinInputStream::~BinInputStream(void)) imported in function "public: virtual void * __thiscall xsd::cxx::xml::sax::std_input_stream::`scalar deleting destructor'(unsigned int)" (??_Gstd_input_stream@sax@xml@cxx@xsd@@UAEPAXI@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0InputSource@xercesc_3_1@@IAE@QB_WQAVMemoryManager@1@@Z (protected: __thiscall xercesc_3_1::InputSource::InputSource(wchar_t const * const,class xercesc_3_1::MemoryManager * const)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_istream > &,class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@AAV?$basic_istream@DU?$char_traits@D@std@@@5@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@cxx@1@ABV?$properties@D@9cxx@1@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1XMLFormatTarget@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::XMLFormatTarget::~XMLFormatTarget(void)) imported in function "void __cdecl parblock::type13::xsd::parblock_(class std::basic_ostream > &,class parblock::type13::xsd::parblock const &,class xsd::cxx::xml::dom::namespace_infomap const &,class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags)" (?parblock_@xsd@type13@parblock@@YAXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@ABV3123@ABV?$namespace_infomap@D@dom@xml@cxx@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@91@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0XMLFormatTarget@xercesc_3_1@@IAE@XZ (protected: __thiscall xercesc_3_1::XMLFormatTarget::XMLFormatTarget(void)) imported in function "void __cdecl parblock::type13::xsd::parblock_(class std::basic_ostream > &,class parblock::type13::xsd::parblock const &,class xsd::cxx::xml::dom::namespace_infomap const &,class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags)" (?parblock_@xsd@type13@parblock@@YAXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@ABV3123@ABV?$namespace_infomap@D@dom@xml@cxx@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@91@@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXSI_NONAMESPACESCHEMALOCACTION@SchemaSymbols@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXSI_SCHEMALOCACTION@SchemaSymbols@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::SchemaSymbols::fgXSI_SCHEMALOCACTION) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgURI_XSI@SchemaSymbols@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::SchemaSymbols::fgURI_XSI) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?equals@XMLString@xercesc_3_1@@SA_NPB_W0@Z (public: static bool __cdecl xercesc_3_1::XMLString::equals(wchar_t const *,wchar_t const *)) imported in function "void __cdecl xsd::cxx::xml::dom::clear(class xercesc_3_1::DOMElement &)" (??$clear@D@dom@xml@cxx@xsd@@YAXAAVDOMElement@xercesc_3_1@@@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXMLNSURIName@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXMLNSURIName) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?stringLen@XMLString@xercesc_3_1@@SAKQB_W@Z (public: static unsigned long __cdecl xercesc_3_1::XMLString::stringLen(wchar_t const * const)) imported in function "class std::basic_string,class std::allocator > __cdecl xsd::cxx::xml::transcode(wchar_t const *)" (??$transcode@D@xml@cxx@xsd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PB_W@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMErrorHandler@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMErrorHandler) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercesLoadSchema@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXercesLoadSchema) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercesSchemaExternalNoNameSpaceSchemaLocation@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercesSchemaExternalSchemaLocation@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXercesSchemaExternalSchemaLocation) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercesUserAdoptsDOMDocument@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXercesUserAdoptsDOMDocument) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercesHandleMultipleImports@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXercesHandleMultipleImports) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercesSchemaFullChecking@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXercesSchemaFullChecking) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercesSchema@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgXercesSchema) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMValidate@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMValidate) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMElementContentWhitespace@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMElementContentWhitespace) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMNamespaces@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMNamespaces) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMEntities@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMEntities) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMDatatypeNormalization@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMDatatypeNormalization) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMComments@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMComments) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?getDOMImplementation@DOMImplementationRegistry@xercesc_3_1@@SAPAVDOMImplementation@2@PB_W@Z (public: static class xercesc_3_1::DOMImplementation * __cdecl xercesc_3_1::DOMImplementationRegistry::getDOMImplementation(wchar_t const *)) imported in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class std::basic_string,class std::allocator > const &,class xercesc_3_1::DOMErrorHandler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAVDOMErrorHandler@xercesc_3_1@@ABV?$properties@D@123@K@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMXMLDeclaration@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMXMLDeclaration) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMWRTFormatPrettyPrint@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMWRTFormatPrettyPrint) imported 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgDOMWRTDiscardDefaultContent@XMLUni@xercesc_3_1@@2QB_WB (public: static wchar_t const * const xercesc_3_1::XMLUni::fgDOMWRTDiscardDefaultContent) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1MemoryManager@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::MemoryManager::~MemoryManager(void)) imported in function "private: void __thiscall xsd::cxx::tree::base64_binary >::decode(wchar_t const *)" (?decode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@AAEXPB_W@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?decodeToXMLByte@Base64@xercesc_3_1@@SAPAEQB_WPAKQAVMemoryManager@2@W4Conformance@12@@Z (public: static unsigned char * __cdecl xercesc_3_1::Base64::decodeToXMLByte(wchar_t const * const,unsigned long *,class xercesc_3_1::MemoryManager * const,enum xercesc_3_1::Base64::Conformance)) imported in function "private: void __thiscall xsd::cxx::tree::base64_binary >::decode(wchar_t const *)" (?decode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@AAEXPB_W@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0MemoryManager@xercesc_3_1@@IAE@XZ (protected: __thiscall xercesc_3_1::MemoryManager::MemoryManager(void)) imported in function "private: void __thiscall xsd::cxx::tree::base64_binary >::decode(wchar_t const *)" (?decode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@AAEXPB_W@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?encode@Base64@xercesc_3_1@@SAPAEQBEKPAKQAVMemoryManager@2@@Z (public: static unsigned char * __cdecl xercesc_3_1::Base64::encode(unsigned char const * const,unsigned long,unsigned long *,class xercesc_3_1::MemoryManager * const)) imported in function "public: class std::basic_string,class std::allocator > __thiscall xsd::cxx::tree::base64_binary >::encode(void)const " (?encode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall xercesc_3_1::DOMErrorHandler::~DOMErrorHandler(void)" (__imp_??1DOMErrorHandler@xercesc_3_1@@UAE@XZ) referenced in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class std::basic_string,class std::allocator > const &,class xsd::cxx::xml::error_handler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$error_handler@D@123@ABV?$properties@D@123@K@Z) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __thiscall xercesc_3_1::DOMErrorHandler::DOMErrorHandler(void)" (__imp_??0DOMErrorHandler@xercesc_3_1@@IAE@XZ) referenced in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class std::basic_string,class std::allocator > const &,class xsd::cxx::xml::error_handler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$error_handler@D@123@ABV?$properties@D@123@K@Z) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall xercesc_3_1::Wrapper4InputSource::~Wrapper4InputSource(void)" (__imp_??1Wrapper4InputSource@xercesc_3_1@@UAE@XZ) referenced in function __catch$??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@AAVInputSource@xercesc_3_1@@AAVDOMErrorHandler@6@ABV?$properties@D@123@K@Z$0 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall xercesc_3_1::Wrapper4InputSource::Wrapper4InputSource(class xercesc_3_1::InputSource * const,bool,class xercesc_3_1::MemoryManager * const)" (__imp_??0Wrapper4InputSource@xercesc_3_1@@QAE@QAVInputSource@1@_NQAVMemoryManager@1@@Z) referenced in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class xercesc_3_1::InputSource &,class xercesc_3_1::DOMErrorHandler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@AAVInputSource@xercesc_3_1@@AAVDOMErrorHandler@6@ABV?$properties@D@123@K@Z) After changing to (No (/Zc:wchar_t-) and recompilation, it gets even worse: 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?Terminate@XMLPlatformUtils@xercesc_3_1@@SAXXZ (public: static void __cdecl xercesc_3_1::XMLPlatformUtils::Terminate(void)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?Initialize@XMLPlatformUtils@xercesc_3_1@@SAXQBD0QAVPanicHandler@2@QAVMemoryManager@2@@Z (public: static void __cdecl xercesc_3_1::XMLPlatformUtils::Initialize(char const * const,char const * const,class xercesc_3_1::PanicHandler * const,class xercesc_3_1::MemoryManager * const)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgXercescDefaultLocale@XMLUni@xercesc_3_1@@2QBDB (public: static char const * const xercesc_3_1::XMLUni::fgXercescDefaultLocale) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1InputSource@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::InputSource::~InputSource(void)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_istream > &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@AAV?$basic_istream@DU?$char_traits@D@std@@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0InputSource@xercesc_3_1@@IAE@QAVMemoryManager@1@@Z (protected: __thiscall xercesc_3_1::InputSource::InputSource(class xercesc_3_1::MemoryManager * const)) imported in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_istream > &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@AAV?$basic_istream@DU?$char_traits@D@std@@@5@Vflags@tree@cxx@1@ABV?$properties@D@891@@Z) 2>block37_Tree.obj : warning LNK4049: locally defined symbol ?fgMemoryManager@XMLPlatformUtils@xercesc_3_1@@2PAVMemoryManager@2@A (public: static class xercesc_3_1::MemoryManager * xercesc_3_1::XMLPlatformUtils::fgMemoryManager) imported 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??3XMemory@xercesc_3_1@@SAXPAX@Z (public: static void __cdecl xercesc_3_1::XMemory::operator delete(void *)) imported in function __unwindfunclet$?makeStream@std_input_source@sax@xml@cxx@xsd@@UBEPAVBinInputStream@xercesc_3_1@@XZ$0 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0BinInputStream@xercesc_3_1@@IAE@XZ (protected: __thiscall xercesc_3_1::BinInputStream::BinInputStream(void)) imported in function "public: virtual class xercesc_3_1::BinInputStream * __thiscall xsd::cxx::xml::sax::std_input_source::makeStream(void)const " (?makeStream@std_input_source@sax@xml@cxx@xsd@@UBEPAVBinInputStream@xercesc_3_1@@XZ) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??2XMemory@xercesc_3_1@@SAPAXI@Z (public: static void * __cdecl xercesc_3_1::XMemory::operator new(unsigned int)) imported in function "public: virtual class xercesc_3_1::BinInputStream * __thiscall xsd::cxx::xml::sax::std_input_source::makeStream(void)const " (?makeStream@std_input_source@sax@xml@cxx@xsd@@UBEPAVBinInputStream@xercesc_3_1@@XZ) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1BinInputStream@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::BinInputStream::~BinInputStream(void)) imported in function "public: virtual void * __thiscall xsd::cxx::xml::sax::std_input_stream::`scalar deleting destructor'(unsigned int)" (??_Gstd_input_stream@sax@xml@cxx@xsd@@UAEPAXI@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1XMLFormatTarget@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::XMLFormatTarget::~XMLFormatTarget(void)) imported in function "void __cdecl parblock::type13::xsd::parblock_(class std::basic_ostream > &,class parblock::type13::xsd::parblock const &,class xsd::cxx::xml::dom::namespace_infomap const &,class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags)" (?parblock_@xsd@type13@parblock@@YAXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@ABV3123@ABV?$namespace_infomap@D@dom@xml@cxx@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@91@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0XMLFormatTarget@xercesc_3_1@@IAE@XZ (protected: __thiscall xercesc_3_1::XMLFormatTarget::XMLFormatTarget(void)) imported in function "void __cdecl parblock::type13::xsd::parblock_(class std::basic_ostream > &,class parblock::type13::xsd::parblock const &,class xsd::cxx::xml::dom::namespace_infomap const &,class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags)" (?parblock_@xsd@type13@parblock@@YAXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@ABV3123@ABV?$namespace_infomap@D@dom@xml@cxx@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@91@@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??1MemoryManager@xercesc_3_1@@UAE@XZ (public: virtual __thiscall xercesc_3_1::MemoryManager::~MemoryManager(void)) imported in function "private: void __thiscall xsd::cxx::tree::base64_binary >::decode(unsigned short const *)" (?decode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@AAEXPBG@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ??0MemoryManager@xercesc_3_1@@IAE@XZ (protected: __thiscall xercesc_3_1::MemoryManager::MemoryManager(void)) imported in function "private: void __thiscall xsd::cxx::tree::base64_binary >::decode(unsigned short const *)" (?decode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@AAEXPBG@Z) 2>block37_Tree.obj : warning LNK4217: locally defined symbol ?encode@Base64@xercesc_3_1@@SAPAEQBEKPAKQAVMemoryManager@2@@Z (public: static unsigned char * __cdecl xercesc_3_1::Base64::encode(unsigned char const * const,unsigned long,unsigned long *,class xercesc_3_1::MemoryManager * const)) imported in function "public: class std::basic_string,class std::allocator > __thiscall xsd::cxx::tree::base64_binary >::encode(void)const " (?encode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "public: virtual unsigned short const * __thiscall xercesc_3_1::InputSource::getEncoding(void)const " (?getEncoding@InputSource@xercesc_3_1@@UBEPBGXZ) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "public: virtual unsigned short const * __thiscall xercesc_3_1::InputSource::getPublicId(void)const " (?getPublicId@InputSource@xercesc_3_1@@UBEPBGXZ) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "public: virtual unsigned short const * __thiscall xercesc_3_1::InputSource::getSystemId(void)const " (?getSystemId@InputSource@xercesc_3_1@@UBEPBGXZ) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall xercesc_3_1::InputSource::setEncoding(unsigned short const * const)" (?setEncoding@InputSource@xercesc_3_1@@UAEXQBG@Z) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall xercesc_3_1::InputSource::setPublicId(unsigned short const * const)" (?setPublicId@InputSource@xercesc_3_1@@UAEXQBG@Z) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall xercesc_3_1::InputSource::setSystemId(unsigned short const * const)" (?setSystemId@InputSource@xercesc_3_1@@UAEXQBG@Z) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __thiscall xercesc_3_1::InputSource::InputSource(unsigned short const * const,class xercesc_3_1::MemoryManager * const)" (__imp_??0InputSource@xercesc_3_1@@IAE@QBGQAVMemoryManager@1@@Z) referenced in function "class std::auto_ptr __cdecl parblock::type13::xsd::parblock_(class std::basic_istream > &,class std::basic_string,class std::allocator > const &,class xsd::cxx::tree::flags,class xsd::cxx::tree::properties const &)" (?parblock_@xsd@type13@parblock@@YA?AV?$auto_ptr@Vparblock@xsd@type13@1@@std@@AAV?$basic_istream@DU?$char_traits@D@std@@@5@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@Vflags@tree@cxx@1@ABV?$properties@D@9cxx@1@@Z) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION" (__imp_?fgXSI_NONAMESPACESCHEMALOCACTION@SchemaSymbols@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::SchemaSymbols::fgXSI_SCHEMALOCACTION" (__imp_?fgXSI_SCHEMALOCACTION@SchemaSymbols@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::SchemaSymbols::fgURI_XSI" (__imp_?fgURI_XSI@SchemaSymbols@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static bool __cdecl xercesc_3_1::XMLString::equals(unsigned short const *,unsigned short const *)" (__imp_?equals@XMLString@xercesc_3_1@@SA_NPBG0@Z) referenced in function "void __cdecl xsd::cxx::xml::dom::clear(class xercesc_3_1::DOMElement &)" (??$clear@D@dom@xml@cxx@xsd@@YAXAAVDOMElement@xercesc_3_1@@@Z) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXMLNSURIName" (__imp_?fgXMLNSURIName@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static unsigned long __cdecl xercesc_3_1::XMLString::stringLen(unsigned short const * const)" (__imp_?stringLen@XMLString@xercesc_3_1@@SAKQBG@Z) referenced in function "class std::basic_string,class std::allocator > __cdecl xsd::cxx::xml::transcode(unsigned short const *)" (??$transcode@D@xml@cxx@xsd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBG@Z) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall xercesc_3_1::DOMErrorHandler::~DOMErrorHandler(void)" (__imp_??1DOMErrorHandler@xercesc_3_1@@UAE@XZ) referenced in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class std::basic_string,class std::allocator > const &,class xsd::cxx::xml::error_handler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$error_handler@D@123@ABV?$properties@D@123@K@Z) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __thiscall xercesc_3_1::DOMErrorHandler::DOMErrorHandler(void)" (__imp_??0DOMErrorHandler@xercesc_3_1@@IAE@XZ) referenced in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class std::basic_string,class std::allocator > const &,class xsd::cxx::xml::error_handler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$error_handler@D@123@ABV?$properties@D@123@K@Z) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMErrorHandler" (__imp_?fgDOMErrorHandler@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXercesLoadSchema" (__imp_?fgXercesLoadSchema@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation" (__imp_?fgXercesSchemaExternalNoNameSpaceSchemaLocation@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXercesSchemaExternalSchemaLocation" (__imp_?fgXercesSchemaExternalSchemaLocation@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXercesUserAdoptsDOMDocument" (__imp_?fgXercesUserAdoptsDOMDocument@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXercesHandleMultipleImports" (__imp_?fgXercesHandleMultipleImports@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXercesSchemaFullChecking" (__imp_?fgXercesSchemaFullChecking@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgXercesSchema" (__imp_?fgXercesSchema@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMValidate" (__imp_?fgDOMValidate@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMElementContentWhitespace" (__imp_?fgDOMElementContentWhitespace@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMNamespaces" (__imp_?fgDOMNamespaces@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMEntities" (__imp_?fgDOMEntities@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMDatatypeNormalization" (__imp_?fgDOMDatatypeNormalization@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMComments" (__imp_?fgDOMComments@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class xercesc_3_1::DOMImplementation * __cdecl xercesc_3_1::DOMImplementationRegistry::getDOMImplementation(unsigned short const *)" (__imp_?getDOMImplementation@DOMImplementationRegistry@xercesc_3_1@@SAPAVDOMImplementation@2@PBG@Z) referenced in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class std::basic_string,class std::allocator > const &,class xercesc_3_1::DOMErrorHandler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAVDOMErrorHandler@xercesc_3_1@@ABV?$properties@D@123@K@Z) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall xercesc_3_1::Wrapper4InputSource::~Wrapper4InputSource(void)" (__imp_??1Wrapper4InputSource@xercesc_3_1@@UAE@XZ) referenced in function __catch$??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@AAVInputSource@xercesc_3_1@@AAVDOMErrorHandler@6@ABV?$properties@D@123@K@Z$0 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall xercesc_3_1::Wrapper4InputSource::Wrapper4InputSource(class xercesc_3_1::InputSource * const,bool,class xercesc_3_1::MemoryManager * const)" (__imp_??0Wrapper4InputSource@xercesc_3_1@@QAE@QAVInputSource@1@_NQAVMemoryManager@1@@Z) referenced in function "struct xsd::cxx::xml::dom::auto_ptr __cdecl xsd::cxx::xml::dom::parse(class xercesc_3_1::InputSource &,class xercesc_3_1::DOMErrorHandler &,class xsd::cxx::xml::properties const &,unsigned long)" (??$parse@D@dom@xml@cxx@xsd@@YA?AU?$auto_ptr@VDOMDocument@xercesc_3_1@@@0123@AAVInputSource@xercesc_3_1@@AAVDOMErrorHandler@6@ABV?$properties@D@123@K@Z) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMXMLDeclaration" (__imp_?fgDOMXMLDeclaration@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMWRTFormatPrettyPrint" (__imp_?fgDOMWRTFormatPrettyPrint@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned short const * const xercesc_3_1::XMLUni::fgDOMWRTDiscardDefaultContent" (__imp_?fgDOMWRTDiscardDefaultContent@XMLUni@xercesc_3_1@@2QBGB) 2>block37_Tree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static unsigned char * __cdecl xercesc_3_1::Base64::decodeToXMLByte(unsigned short const * const,unsigned long *,class xercesc_3_1::MemoryManager * const,enum xercesc_3_1::Base64::Conformance)" (__imp_?decodeToXMLByte@Base64@xercesc_3_1@@SAPAEQBGPAKQAVMemoryManager@2@W4Conformance@12@@Z) referenced in function "private: void __thiscall xsd::cxx::tree::base64_binary >::decode(unsigned short const *)" (?decode@?$base64_binary@DV?$simple_type@V_type@tree@cxx@xsd@@@tree@cxx@xsd@@@tree@cxx@xsd@@AAEXPBG@Z) I would be grateful if you can bring me on the right track to solve this issue ! Many thanks, Michael From boris at codesynthesis.com Thu Dec 5 09:14:55 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Dec 5 09:17:18 2013 Subject: [xsd-users] Error linking with xerces-c_static_3.lib In-Reply-To: <26F762CE18B1D240B3E3A2CAC0039367056E49@ATVIES991UDMSX.ww300.siemens.net> References: <26F762CE18B1D240B3E3A2CAC0039367056E49@ATVIES991UDMSX.ww300.siemens.net> Message-ID: Hi Michael, Wacenovsky, Michael writes: > I downloaded xerces-c_static_3.lib to statically link my project, > using DOM tree parser. > > I get following errors: Have you defined the XERCES_STATIC_LIBRARY macro when building your project? Quoting from the Xerces-C++ website (Build Instructions; Windows section): "If you are linking your application to the static Xerces-C++ library, then you will need to compile your application with the XERCES_STATIC_LIBRARY preprocessor macro defined in order to turn off the DLL import/export mechanism." > After changing to (No (/Zc:wchar_t-) and recompilation, it gets even worse: No, you should leave native wchar_t enabled. Boris From greenc at fnal.gov Thu Dec 5 09:27:01 2013 From: greenc at fnal.gov (Chris Green) Date: Thu Dec 5 09:27:07 2013 Subject: [xsd-users] Mac OS X need to link against static Boost / xerces_c In-Reply-To: References: <52A01ABF.5040105@fnal.gov> Message-ID: <52A08D35.9010807@fnal.gov> Thank you, thank you, thank you! Following your advice, I got past the, "got to do it the same way it's been done before" block, and I have been able to retire the patch solution on all platforms! On 12/5/13 1:21 AM, Boris Kolpackov wrote: >> I'm by no means an expert compiling on OS X, although it seems that >> the static xerces_c library introduces a need to link against (at >> least) the CoreFoundations framework. >> >> Yes, adding "-framework CoreFoundation" to the LIBS variable as shown >> above should do the trick. I additionally needed the Carbon platform on Mac, but that was trivial to add on top of your solution. >> I should note that we need to do this because all of our own code is >> built for C++2011 (-std=c++11), and therefore C++2011-compiled >> versions of Boost and xerces_c are what are available in >> LD_LIBRARY_PATH at the time we are invoking xsd -- either xsd has to >> be compiled statically against these libraries or it must be >> compiled C++2011. We have been unable to do the latter thus far > Will try to make sure XSD compiles in the C++11 mode for the upcoming > release. Thank you! > Boris Best, Chris. From michael.wacenovsky at siemens.com Thu Dec 5 09:31:00 2013 From: michael.wacenovsky at siemens.com (Wacenovsky, Michael) Date: Thu Dec 5 09:31:05 2013 Subject: AW: [xsd-users] Error linking with xerces-c_static_3.lib In-Reply-To: References: <26F762CE18B1D240B3E3A2CAC0039367056E49@ATVIES991UDMSX.ww300.siemens.net> Message-ID: <26F762CE18B1D240B3E3A2CAC0039367056EA4@ATVIES991UDMSX.ww300.siemens.net> That worked ;-) Many thanks for helping so quickly ! Michael -----Urspr?ngliche Nachricht----- Von: Boris Kolpackov [mailto:boris@codesynthesis.com] Gesendet: Donnerstag, 05. Dezember 2013 15:15 An: Wacenovsky, Michael Cc: xsd-users@codesynthesis.com Betreff: Re: [xsd-users] Error linking with xerces-c_static_3.lib Hi Michael, Wacenovsky, Michael writes: > I downloaded xerces-c_static_3.lib to statically link my project, > using DOM tree parser. > > I get following errors: Have you defined the XERCES_STATIC_LIBRARY macro when building your project? Quoting from the Xerces-C++ website (Build Instructions; Windows section): "If you are linking your application to the static Xerces-C++ library, then you will need to compile your application with the XERCES_STATIC_LIBRARY preprocessor macro defined in order to turn off the DLL import/export mechanism." > After changing to (No (/Zc:wchar_t-) and recompilation, it gets even worse: No, you should leave native wchar_t enabled. Boris From Juan.Puertos at g-cluster.com Mon Dec 9 08:25:40 2013 From: Juan.Puertos at g-cluster.com (Juan Puertos) Date: Mon Dec 9 08:25:50 2013 Subject: [xsd-users] XSD export symbol. Message-ID: Hi all, Refactoring my project in order to have all the generated stuff by Codesynthesis XSD in a dll I've encountered one problem. I am using this guide, (Using VisualStudio 2012 dough), when I try to add the export symbol option xsd.exe reports following error: 2> xsd cxx-tree xsd\Base.xsd 2>CXX_TREE_MAPPING_RULE : error : '"export.hxx"' is not a valid filesystem path 2>C:\Projects\Foo\vc-10.0\xsd-cxx-tree.targets(45,5): error MSB3721: The command "xsd.exe cxx-tree --generate-inline --generate-forward --generate-serialization --generate-ostream --output-dir "." --hxx-suffix ".hxx" --cxx-suffix ".cxx" --ixx-suffix ".ixx" --fwd-suffix "-fwd.hxx" --export-symbol "--hxx-prologue "#include \"export.hxx\""" xsd\Base.xsd" exited with code 1. Even I have created the "export.hxx" file and all. It is curious that "--hxx-prologue "#include \"export.hxx\""" appears quoted even I didn't put it quote it. If I skip the "export symbol" option it works fine, but then I can not link against the generated .dll. Thanks, Juan V. Puertos ________________________________ Confidentiality Notice This e-mail (including any attachments) may contain information that is confidential or privileged. If you are not the intended recipient, please notify the sender immediately by reply e-mail and then delete this message. Unauthorized copying, disclosure, distribution or other use of this information, or taking any action in reliance upon this information is prohibited. From boris at codesynthesis.com Mon Dec 9 08:40:46 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Dec 9 08:43:11 2013 Subject: [xsd-users] XSD export symbol. In-Reply-To: References: Message-ID: Hi Juan, Juan Puertos writes: > [...] --export-symbol "--hxx-prologue "#include \"export.hxx\""" The command line is missing an argument for the --export-symbol option. It should be something like: --export-symbol MY_EXPORT ... Are you using the .rules file or is this your custom build step? Boris From Juan.Puertos at g-cluster.com Mon Dec 9 09:06:38 2013 From: Juan.Puertos at g-cluster.com (Juan Puertos) Date: Mon Dec 9 09:06:47 2013 Subject: [xsd-users] XSD export symbol. In-Reply-To: References: Message-ID: Using the .rules file. Now I am trying this 1. Header prologue file: export.hxx 2. Export Symbol: DATAMODELBINDING_EXPORTS My export.hxx looks like: #ifdef DATAMODELBINDING_EXPORTS #define DATAMODELBINDING_SYMBOL_DECL __declspec(dllexport) #else #define DATAMODELBINDING_SYMBOL_DECL __declspec(dllimport) #endif Generation of the code works, but the class names is something wrong: " class DATAMODELBINDING_EXPORTS ZeroOpenedUnitInterval: public ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type, ::xsd::cxx::tree::schema_type::decimal >" So it fails to compile. Thanks. -----Original Message----- From: Boris Kolpackov [mailto:boris@codesynthesis.com] Sent: Monday, December 09, 2013 15:43 To: Juan Puertos Cc: xsd-users@codesynthesis.com Subject: Re: [xsd-users] XSD export symbol. Hi Juan, Juan Puertos writes: > [...] --export-symbol "--hxx-prologue "#include \"export.hxx\""" The command line is missing an argument for the --export-symbol option. It should be something like: --export-symbol MY_EXPORT ... Are you using the .rules file or is this your custom build step? Boris ________________________________ Confidentiality Notice This e-mail (including any attachments) may contain information that is confidential or privileged. If you are not the intended recipient, please notify the sender immediately by reply e-mail and then delete this message. Unauthorized copying, disclosure, distribution or other use of this information, or taking any action in reliance upon this information is prohibited. From Chris.Delnooz at hydrix.com Thu Dec 12 00:29:08 2013 From: Chris.Delnooz at hydrix.com (Chris Delnooz) Date: Thu Dec 12 00:29:26 2013 Subject: [xsd-users] --namespace-map and xs:include Message-ID: <1ABD3AB5D5D0DC439E0C9617AC6DF683BA0029@ALLEXCH.alloratech.local> I have two schema's, say A.xsd and B.xsd neither of which specifies a target namespace. I've generated code for A.xsd with --namespace-map =A because I do want a namespace in code and B is generated with a similar directive --namespace-map =B. So far no problems, it works fine. The problem arises when we wanted to use a class from A.xsd in B.xsd. Let's say class X is defined in A.xsd, so a C++ class A::X is generated, which is exactly what I wanted. B.xsd now xs:includes A.xsd and the generated code contains the correct #include A.hpp. Now in B.xsd there is a class Y that has an element of type X. The generator generates a typedef like "typedef B::X XType" which won't compile because in the C++ world it should have been "typedef A::X XType" Is there any way to tell the generator to prefix the stuff it got via the xs:include with A and the rest with B? Cheers! Chris Delnooz | Software Architect chris.delnooz@hydrix.com Hydrix: Our Expertise - Your Competitive Advantage www.hydrix.com | fax +61 3 8573 5289 | direct +61 3 8573 5248 From boris at codesynthesis.com Thu Dec 12 01:41:09 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Dec 12 01:43:33 2013 Subject: [xsd-users] --namespace-map and xs:include In-Reply-To: <1ABD3AB5D5D0DC439E0C9617AC6DF683BA0029@ALLEXCH.alloratech.local> References: <1ABD3AB5D5D0DC439E0C9617AC6DF683BA0029@ALLEXCH.alloratech.local> Message-ID: Hi Chris, Chris Delnooz writes: > Is there any way to tell the generator to prefix the stuff it got via > the xs:include with A and the rest with B? No, this is not supported. What you are trying to do is map the same XML namespace (in this case the "empty namespace") to two different C++ namespaces. IMO, this is just looking for problems down the road. If you need two different C++ namespaces then you will need to have two different XML namespace. XML namespaces affect instance documents so what you can do, for example, is have A.xsd and B.xsd defined XML namespaces but contain only types. Then have C.xsd without any namespace that imports A.xsd and B.xsd and defines all the global elements for the vocabulary. Boris From Gene.Falendysz at itron.com Mon Dec 16 08:23:07 2013 From: Gene.Falendysz at itron.com (Falendysz, Gene) Date: Mon Dec 16 11:47:16 2013 Subject: [xsd-users] HexBinary Message-ID: Is there a way to suppress the leading "0"s in HexBinary? I am working to a spec that requires an even number of digits and at most one leading "0". As an example assuming HexBinary 32: 1234 - ok 0123 - ok 123 - not acceptable 000123 - not acceptable 00000123 - not acceptable [http://marketing.itron.com/campaign/ribbon_logo_rgb_81h.jpg] Gene Falendysz Principal Design Engineer Phone: +1.864.718.6676 Knowledge to Shape Your Future [http://marketing.itron.com/campaign/social_media_icon_twitter29.jpg] [http://marketing.itron.com/campaign/social_media_icon_facebook29.jpg] [http://marketing.itron.com/campaign/social_media_icon_linkedin29.jpg] [http://marketing.itron.com/campaign/social_media_icon_youtube29.jpg] ******************************************** This message may contain confidential, proprietary or legally privileged information. It is for the use of the named recipient only, and access by anyone else is unauthorized. If you received this message in error, please reply to that effect and delete this message. ******************************************** -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.jpg Type: image/jpeg Size: 20786 bytes Desc: image001.jpg Url : http://codesynthesis.com/pipermail/xsd-users/attachments/20131216/171b8d5f/image001-0001.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 1675 bytes Desc: image002.jpg Url : http://codesynthesis.com/pipermail/xsd-users/attachments/20131216/171b8d5f/image002-0001.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: image003.jpg Type: image/jpeg Size: 1586 bytes Desc: image003.jpg Url : http://codesynthesis.com/pipermail/xsd-users/attachments/20131216/171b8d5f/image003-0001.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: image004.jpg Type: image/jpeg Size: 1696 bytes Desc: image004.jpg Url : http://codesynthesis.com/pipermail/xsd-users/attachments/20131216/171b8d5f/image004-0001.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: image005.jpg Type: image/jpeg Size: 1656 bytes Desc: image005.jpg Url : http://codesynthesis.com/pipermail/xsd-users/attachments/20131216/171b8d5f/image005-0001.jpg From boris at codesynthesis.com Mon Dec 16 11:53:30 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Dec 16 11:55:54 2013 Subject: [xsd-users] HexBinary In-Reply-To: References: Message-ID: Hi Gene, Falendysz, Gene writes: > Is there a way to suppress the leading "0"s in HexBinary? I am working > to a spec that requires an even number of digits and at most one leading > "0". Strange spec. What if there are two leading zero bytes in the binary representation. Are they just discaded? In any case, you can customize the built-in xml_schema::hex_binary type and implement your own encoding. For more information on type customization see the C++/Tree Mapping Customization Guide: http://wiki.codesynthesis.com/Tree/Customization_guide As well as the examples in the examples/cxx/tree/custom/ directory. The example that is the closest to what you want to do would probably be 'double'. Boris From anders.gardenas at gmail.com Wed Dec 18 12:35:11 2013 From: anders.gardenas at gmail.com (=?ISO-8859-1?Q?Anders_G=E4rden=E4s?=) Date: Thu Dec 19 03:26:48 2013 Subject: [xsd-users] Need some help Message-ID: Can i se an example where this xml Schema is comverted to C++, wood be weary help full -------------- next part -------------- A non-text attachment was scrubbed... Name: XMLSchema1.xsd Type: application/xml Size: 8292 bytes Desc: not available Url : http://codesynthesis.com/pipermail/xsd-users/attachments/20131218/edf78d3b/XMLSchema1.xml From boris at codesynthesis.com Thu Dec 19 03:27:13 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Dec 19 03:29:38 2013 Subject: [xsd-users] Need some help In-Reply-To: References: Message-ID: Anders, Anders G?rden?s writes: > Can i se an example where this xml Schema is comverted to C++, wood be > weary help full What is your difficulty with compiling this schema? In other words, don't ask us to do things for you. Try to do it yourself, and if things don't work, ask for help about specific issues you are having. Boris From anders.gardenas at gmail.com Thu Dec 19 07:18:16 2013 From: anders.gardenas at gmail.com (=?ISO-8859-1?Q?Anders_G=E4rden=E4s?=) Date: Thu Dec 19 07:22:26 2013 Subject: [xsd-users] Need some help In-Reply-To: References: Message-ID: Sorry didn't get it to work first and wanted to se an example before i tested it, but it works fine now. sorry 2013/12/19 Boris Kolpackov > Anders, > > Anders G?rden?s writes: > > > Can i se an example where this xml Schema is comverted to C++, wood be > > weary help full > > What is your difficulty with compiling this schema? In other words, don't > ask us to do things for you. Try to do it yourself, and if things don't > work, ask for help about specific issues you are having. > > Boris > From erik.sjolund at gmail.com Sun Dec 22 04:09:10 2013 From: erik.sjolund at gmail.com (=?ISO-8859-1?Q?Erik_Sj=F6lund?=) Date: Sun Dec 22 04:09:17 2013 Subject: [xsd-users] generate HTML documentation with hyperlinks between XML, XSD and doxygen-generated HTML Message-ID: Hi, I've used CodeSynthesis XSD to generate C++ from a few XSD schemas. I also have some example XML files conforming to these XSD schemas. Everything is working fine but I have a question regarding generation of HTML documentation. Is there a way to generate HTML documentation that shows an example XML file with hyperlinks to the doxygen-generated C++ HTML documentation? Maybe it is possible to go even further and generate HTML documentation, with hyperlinks between the three XML example file XSD schema doxygen-generated C++ HTML docuemntation ? If there is no software to generate such documentation today, do you have a tip of how to implement such software? Maybe by using the PSVI functionality in Xerces? Or (in the future) by using the planned introspection functionality in CodeSynthesis XSD, http://www.codesynthesis.com/pipermail/xsd-users/2010-November/003082.html Are the plans for introspection functionality still in the pipeline? cheers, Erik Sj?lund From boris at codesynthesis.com Mon Dec 23 02:18:46 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon Dec 23 02:21:11 2013 Subject: [xsd-users] generate HTML documentation with hyperlinks between XML, XSD and doxygen-generated HTML In-Reply-To: References: Message-ID: Hi Erik, Erik Sj?lund writes: > Is there a way to generate HTML documentation that shows an example XML > file with hyperlinks to the doxygen-generated C++ HTML documentation? I don't understand the difference between "HTML documentation" and "doxygen-generated C++ HTML documentation". What is "HTML documentation" based on? In any case, all XSD can do is generate Doxygen comments in C++ code. It also copies documentation from XML Schema to these commens. So maybe you can use some Doxygen directives to establish the hyperlinks you want (e.g., link to sample XML documents from global elements which are translated to parsing/serialization functions). > If there is no software to generate such documentation today, do you have a > tip of how to implement such software? Nop, since I have no idea what that "HTML documentation" will contain, what it is based on, etc, etc. > Maybe by using the PSVI functionality in Xerces? It is not easy to work with but you can get the schema model this way. You could also use libxsd-frontent on which XSD is built. > Or (in the future) by using the planned introspection functionality in > CodeSynthesis XSD, > http://www.codesynthesis.com/pipermail/xsd-users/2010-November/003082.html That would we runtime introspection of specific C++ object model instances, not compile-time introspection of (the entire) XML Schema. I don't think you could use something like this for documentation generation. > Are the plans for introspection functionality still in the pipeline? Most likely not. There doesn't seem to be much interest in it so the extra complexity and code bloat is probably not worth it. Boris From erik.sjolund at gmail.com Mon Dec 23 05:15:07 2013 From: erik.sjolund at gmail.com (=?ISO-8859-1?Q?Erik_Sj=F6lund?=) Date: Mon Dec 23 05:15:14 2013 Subject: [xsd-users] generate HTML documentation with hyperlinks between XML, XSD and doxygen-generated HTML In-Reply-To: References: Message-ID: On Mon, Dec 23, 2013 at 8:18 AM, Boris Kolpackov wrote: > Erik Sj?lund writes: > > > Is there a way to generate HTML documentation that shows an example XML > > file with hyperlinks to the doxygen-generated C++ HTML documentation? > > I don't understand the difference between "HTML documentation" and > "doxygen-generated C++ HTML documentation". What is "HTML documentation" > based on? > I hope the following example will clarify what I mean. If we for a second forget about Doxygen and just look at the example of mapping an XML file to its XSD file, we could use HTML anchors to reference positions inside an HTML web page (e.g. ) $ cd examples/cxx/tree/hello $ find . -cmin -1 -type f $ nonexistentsoftware hello.xsd hello.xml $ find . -cmin -1 -type f ./hello.xml.html ./hello.xsd.html $ grep greeting hello.xml Hello $ grep greeting hello.xml.html <greeting>Hello</greeting>
$ grep greeting hello.xsd | grep xsd:element $ grep greeting hello.xsd.html | grep "a name" <xsd:element name="greeting" type="xsd:string">
$ I guess similar hyperlinks could be added to point into the generated doxgen documentation. cheers, Erik From boris at codesynthesis.com Tue Dec 24 10:20:38 2013 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue Dec 24 10:23:03 2013 Subject: [xsd-users] generate HTML documentation with hyperlinks between XML, XSD and doxygen-generated HTML In-Reply-To: References: Message-ID: Hi Erik, Erik Sj?lund writes: > If we for a second forget about Doxygen and just look at the example of > mapping an XML file to its XSD file, we could use HTML anchors to reference > positions inside an HTML web page (e.g. ) Ok, so you want the documentation to establish links between an XML instance elements/attributes and their corresponding XML Schema definitions. XSD cannot do this and there are no plans to provide this functionality (this is the first time I hear anyone needed anything like this). Your best bet is probably to use Xerces-C++ PSVI since it is pretty much the association you are looking for. Boris