From b15b180389b9da617226987c2d8646f0a98afafc Mon Sep 17 00:00:00 2001 From: Ebersold Date: Wed, 22 Dec 2021 20:19:31 +0100 Subject: [PATCH] Moved directory --- CMakeLists.txt | 65 + README.txt | 175 ++ ResourceResolver.java | 54 + ajax-soap-proxy.js | 1020 +++++++++ libxsd/CMakeLists.txt | 11 + libxsd/include/xmlSerialize.h | 21 + libxsd/include/xmlparser.h | 156 ++ libxsd/include/xsd/config.h.cmake | 14 + libxsd/include/xsd/parser/document.h | 26 + libxsd/include/xsd/parser/elements.h | 76 + libxsd/include/xsd/parser/expat/elements.h | 91 + libxsd/include/xsd/parser/parser.h | 152 ++ libxsd/include/xsd/xmlschema.h | 61 + libxsd/include/xsd/xsd.h | 83 + libxsd/src/CMakeLists.txt | 65 + libxsd/src/document_expat.cpp | 175 ++ libxsd/src/elements.cpp | 5 + libxsd/src/parser.cpp | 286 +++ tests/CMakeLists.txt | 2 + tests/api/CMakeLists.txt | 138 ++ tests/api/api.xsd | 387 ++++ tests/api/main.cpp | 83 + tests/basic/01basic.xsd | 58 + tests/basic/02basic.xsd | 70 + tests/basic/03basic.xsd | 72 + tests/basic/05all.xsd | 23 + tests/basic/06all.xsd | 25 + tests/basic/07all.xsd | 40 + tests/basic/08all.xsd | 26 + tests/basic/10group.xsd | 30 + tests/basic/11group.xsd | 29 + tests/basic/12group.xsd | 34 + tests/basic/20restriction.xsd | 50 + tests/basic/21restriction.xsd | 51 + tests/basic/22restriction.xsd | 37 + tests/basic/30extension.xsd | 54 + tests/basic/31extension.xsd | 31 + tests/basic/40list.xsd | 39 + tests/basic/41list.xsd | 30 + tests/basic/50union.xsd | 88 + tests/basic/60abstract.xsd | 42 + tests/basic/70sequence.xsd | 30 + tests/basic/71sequence.xsd | 29 + tests/basic/80choice.xsd | 28 + tests/basic/81choice.xsd | 27 + tests/basic/90attribute.xsd | 23 + tests/basic/91attribute.xsd | 31 + tests/basic/92attribute.xsd | 27 + tests/basic/93attribute.xsd | 27 + tests/basic/95attributeGroup.xsd | 34 + tests/basic/96attributeGroup.xsd | 42 + tests/basic/CMakeLists.txt | 386 ++++ tests/basic/TCTmpl.cpp | 50 + tests/basic/TCTmpl.h | 27 + tests/basic/TestCase50union.cpp | 143 ++ tests/basic/TestCase50union.h | 34 + tests/basic/TestCaseAllBase.cpp | 41 + tests/basic/TestCaseAllBase.h | 28 + tests/basic/TestCaseAllExtension.cpp | 50 + tests/basic/TestCaseAllExtension.h | 27 + tests/basic/TestCaseAllGroup.cpp | 50 + tests/basic/TestCaseAllGroup.h | 27 + tests/basic/TestCaseAllRef.cpp | 35 + tests/basic/TestCaseAllRef.h | 28 + tests/basic/TestCaseAnoAttributeGroup.cpp | 84 + tests/basic/TestCaseAnoAttributeGroup.h | 33 + tests/basic/TestCaseAttribute.cpp | 80 + tests/basic/TestCaseAttribute.h | 30 + tests/basic/TestCaseAttributeGroup.cpp | 37 + tests/basic/TestCaseAttributeGroup.h | 27 + tests/basic/TestCaseAttributeOptional.cpp | 60 + tests/basic/TestCaseAttributeOptional.h | 29 + tests/basic/TestCaseAttributeRestricted.cpp | 83 + tests/basic/TestCaseAttributeRestricted.h | 34 + .../TestCaseComplexContentRestriction.cpp | 109 + .../basic/TestCaseComplexContentRestriction.h | 36 + tests/basic/TestCaseComplexTypeChoice.cpp | 80 + tests/basic/TestCaseComplexTypeChoice.h | 34 + tests/basic/TestCaseComplexTypeSequence.cpp | 37 + tests/basic/TestCaseComplexTypeSequence.h | 27 + tests/basic/TestCaseCplxTpChoiceSequence.cpp | 38 + tests/basic/TestCaseCplxTpChoiceSequence.h | 27 + tests/basic/TestCaseGroup.cpp | 101 + tests/basic/TestCaseGroup.h | 31 + tests/basic/TestCaseList.cpp | 39 + tests/basic/TestCaseList.h | 28 + tests/basic/TestCaseRecurse.cpp | 129 ++ tests/basic/TestCaseRecurse.h | 39 + ...estCaseSimpleContentExtensionAttribute.cpp | 36 + .../TestCaseSimpleContentExtensionAttribute.h | 28 + .../TestCaseSimpleContentRestriction.cpp | 74 + .../basic/TestCaseSimpleContentRestriction.h | 34 + tests/basic/TestCaseSimpleSerialize.cpp | 107 + tests/basic/TestCaseSimpleSerialize.h | 30 + tests/basic/TestCaseSimpleType.cpp | 109 + tests/basic/TestCaseSimpleType.h | 36 + tests/basic/TestCaseSimpleTypeRestriction.cpp | 81 + tests/basic/TestCaseSimpleTypeRestriction.h | 35 + tests/basic/basic.xsd | 69 + tests/basic/main.cpp | 19 + tests/basic/main_parser.cpp | 92 + tests/basic/main_test.cpp | 36 + tests/basic/newtc.sh | 11 + tests/basic/xmlsources/01basic_01int.xml | 7 + tests/basic/xmlsources/01basic_02long.xml | 7 + tests/basic/xmlsources/01basic_03double.xml | 7 + tests/basic/xmlsources/01basic_04string.xml | 7 + tests/basic/xmlsources/01basic_05byte.xml | 7 + tests/basic/xmlsources/01basic_07short.xml | 7 + tests/basic/xmlsources/01basic_10date.xml | 7 + tests/basic/xmlsources/01basic_11dateTime.xml | 7 + tests/basic/xmlsources/01basic_12duration.xml | 7 + tests/basic/xmlsources/01basic_13gYear.xml | 7 + .../basic/xmlsources/01basic_14gYearMonth.xml | 7 + .../basic/xmlsources/01basic_15gMonthDay.xml | 7 + tests/basic/xmlsources/01basic_16gMonth.xml | 7 + tests/basic/xmlsources/01basic_17gDay.xml | 7 + tests/basic/xmlsources/01basic_18time.xml | 7 + tests/basic/xmlsources/01basic_20IDREFS.xml | 7 + tests/basic/xmlsources/01basic_21ENTITIES.xml | 7 + tests/basic/xmlsources/01basic_22NMTOKEN.xml | 7 + tests/basic/xmlsources/01basic_23token.xml | 7 + tests/basic/xmlsources/01basic_24QName.xml | 7 + tests/basic/xmlsources/01basic_25NCName.xml | 7 + tests/basic/xmlsources/01basic_26ID.xml | 7 + tests/basic/xmlsources/01basic_27IDREF.xml | 7 + tests/basic/xmlsources/03basic_recurse_01.xml | 6 + tests/basic/xmlsources/03basic_recurse_02.xml | 12 + tests/cwmp/CMakeLists.txt | 147 ++ tests/cwmp/TCElements.cpp | 152 ++ tests/cwmp/TCElements.h | 45 + tests/cwmp/main.cpp | 8 + tests/cwmp/main_test.cpp | 36 + tests/dependencies/01element.xsd | 26 + tests/dependencies/02element.xsd | 35 + tests/dependencies/03element.xsd | 35 + tests/dependencies/04element.xsd | 35 + tests/dependencies/05element.xsd | 40 + tests/dependencies/06element.xsd | 44 + tests/dependencies/07element.xsd | 64 + tests/dependencies/08element.xsd | 136 ++ tests/dependencies/09element.xsd | 144 ++ tests/dependencies/CMakeLists.txt | 182 ++ tests/dependencies/main_test.cpp | 36 + tests/ics_notifier/CMakeLists.txt | 151 ++ tests/ics_notifier/TCNotifier.cpp | 63 + tests/ics_notifier/TCNotifier.h | 27 + tests/ics_notifier/TCParseSubscribe.cpp | 85 + tests/ics_notifier/TCParseSubscribe.h | 32 + tests/ics_notifier/TCSoapNotifier.cpp | 61 + tests/ics_notifier/TCSoapNotifier.h | 28 + tests/ics_notifier/main_test.cpp | 36 + tests/ics_notifier/nsmap.xml | 8 + tests/kml/CMakeLists.txt | 41 + tests/kml/main_test.cpp | 36 + tests/pgml/CMakeLists.txt | 54 + tests/pgml/main_test.cpp | 36 + tests/soap/CMakeLists.txt | 146 ++ tests/soap/TCSoapSerialize.cpp | 92 + tests/soap/TCSoapSerialize.h | 39 + tests/soap/main.cpp | 82 + tests/soap/main_soap.cpp | 25 + tests/soap/main_test.cpp | 36 + tests/svg/CMakeLists.txt | 71 + tests/svg/main_test.cpp | 36 + tests/t8000/CMakeLists.txt | 129 ++ tests/t8000/main.cpp | 107 + tests/t8000/main_index.cpp | 113 + tests/t8000/merge_index.cpp | 202 ++ tests/umf/CMakeLists.txt | 97 + tests/umf/WbmTelphony/views/ArsGatewayDns.gml | 28 + .../views/ArsGatewayParameters.gml | 69 + .../views/ArsGatewayParametersAdd.gml | 89 + .../views/ArsGatewayParametersDelete.gml | 33 + .../views/ArsGatewayParametersModify.gml | 91 + tests/umf/WbmTelphony/views/ArsPrefixes.gml | 51 + .../umf/WbmTelphony/views/ArsPrefixesAdd.gml | 64 + .../views/ArsPrefixesAddSubline.gml | 64 + .../WbmTelphony/views/ArsPrefixesDelete.gml | 33 + .../WbmTelphony/views/ArsPrefixesModify.gml | 64 + .../WbmTelphony/views/ArsSelectionList.gml | 32 + .../views/ArsSipPublicNumbering.gml | 42 + .../views/ArsSipPublicNumberingAdd.gml | 77 + .../views/ArsSipPublicNumberingDelete.gml | 33 + .../views/ArsSipPublicNumberingModify.gml | 75 + .../WbmTelphony/views/ArsTrunkGroupsLists.gml | 42 + .../views/ArsTrunkGroupsListsAdd.gml | 42 + .../views/ArsTrunkGroupsListsAddSubline.gml | 42 + .../views/ArsTrunkGroupsListsDelete.gml | 33 + .../views/ArsTrunkGroupsListsModify.gml | 42 + tests/umf/WbmTelphony/views/DevicesAdd.gml | 60 + tests/umf/WbmTelphony/views/DevicesDelete.gml | 35 + .../umf/WbmTelphony/views/DevicesDetails.gml | 239 +++ tests/umf/WbmTelphony/views/DevicesList.gml | 46 + tests/umf/WbmTelphony/views/DevicesType.gml | 35 + .../umf/WbmTelphony/views/EndOfDialingAdd.gml | 40 + .../WbmTelphony/views/EndOfDialingDelete.gml | 31 + .../WbmTelphony/views/EndOfDialingModify.gml | 35 + .../EndOfDialingModifyDefaultCounter.gml | 28 + .../umf/WbmTelphony/views/ListOfAccesses.gml | 37 + .../views/NumberingPlansAddModify.gml | 70 + .../views/NumberingPlansDelete.gml | 40 + .../WbmTelphony/views/NumberingPlansMain.gml | 262 +++ .../WbmTelphony/views/NumberingSettings.gml | 95 + tests/umf/WbmUser/views/UserEdit.gml | 268 +++ tests/umf/WbmUser/views/UsersAccounts.gml | 30 + tests/umf/WbmUser/views/UsersDelete.gml | 24 + tests/umf/main.cpp | 162 ++ tests/uml2/CMakeLists.txt | 216 ++ tests/uml2/main.cpp | 0 tests/uml2/main_test.cpp | 36 + tests/x3d/CMakeLists.txt | 59 + tests/x3d/main_test.cpp | 36 + tests/xmldsig/CMakeLists.txt | 54 + tests/xmldsig/main_test.cpp | 36 + tests/xpdl/CMakeLists.txt | 65 + tests/xpdl/main_test.cpp | 36 + tests/xslt/CMakeLists.txt | 80 + tests/xslt/TestCaseParseXsl.cpp | 106 + tests/xslt/TestCaseParseXsl.h | 41 + tests/xslt/main_test.cpp | 36 + tr069-header.xsl | 114 + tr069-source.xsl | 105 + tr069-utils.xsl | 129 ++ tr069.xsl | 145 ++ uml14-2-xsd.xsl | 0 uml2dot.xsd | 83 + uuid.xsl | 127 ++ wsdl2.xsl | 278 +++ wsdl2soap-cpp.xsl | 306 +++ wsdl2soap-header.xsl | 294 +++ wsdl2soap-js.xsl | 194 ++ wsdl2soap-srv-hdr.xsl | 294 +++ wsdl2soap-srv-src.xsl | 306 +++ xsd2cpp-billing.xsl | 38 + xsd2cpp-default-value.xsl | 267 +++ xsd2cpp-gen.xsl | 1247 +++++++++++ xsd2cpp-make-deps-3.xsl | 170 ++ xsd2cpp-make-deps-class.xsl | 377 ++++ xsd2cpp-make-deps-deep.xsl | 564 +++++ xsd2cpp-make-deps-doon.xsl | 54 + xsd2cpp-make-deps-on.xsl | 306 +++ xsd2cpp-make-deps.xsl | 1264 +++++++++++ xsd2cpp-parser-hdr-event.xsl | 575 +++++ xsd2cpp-parser-hdr-member.xsl | 457 ++++ xsd2cpp-parser-header.xsl | 1200 +++++++++++ xsd2cpp-parser-src-attribute.xsl | 295 +++ xsd2cpp-parser-src-end.xsl | 305 +++ xsd2cpp-parser-src-event.xsl | 494 +++++ xsd2cpp-parser-src-post.xsl | 275 +++ xsd2cpp-parser.xsl | 1405 ++++++++++++ xsd2cpp-tpl.xsl | 413 ++++ xsd2cpp-tree-hdr-choice-union.xsl | 119 ++ xsd2cpp-tree-hdr-inherit.xsl | 115 + xsd2cpp-tree-hdr-mbr-attr.xsl | 239 +++ xsd2cpp-tree-hdr-mbr-elem.xsl | 337 +++ xsd2cpp-tree-hdr-root.xsl | 443 ++++ xsd2cpp-tree-hdr-setget.xsl | 447 ++++ xsd2cpp-tree-hdr-type-mbr-get.xsl | 183 ++ xsd2cpp-tree-hdr-type-mbr-set.xsl | 246 +++ xsd2cpp-tree-hdr-typedef.xsl | 28 + xsd2cpp-tree-header.xsl | 1875 +++++++++++++++++ xsd2cpp-tree-src-constructor-params.xsl | 479 +++++ xsd2cpp-tree-src-serialize-attribute.xsl | 207 ++ xsd2cpp-tree-src-serialize-element.xsl | 210 ++ xsd2cpp-tree-src-serialize-root.xsl | 181 ++ xsd2cpp-tree-src-serialize.xsl | 595 ++++++ xsd2cpp-tree-src-setget.xsl | 598 ++++++ xsd2cpp-tree.xsl | 962 +++++++++ xsd2cpp-types.xsl | 247 +++ xsd2cpp-utils.xsl | 231 ++ xsd2cpp.java | 89 + xsd2cpp.xsl | 961 +++++++++ xsd2cpp_saxon.java | 85 + 274 files changed, 34767 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 README.txt create mode 100644 ResourceResolver.java create mode 100644 ajax-soap-proxy.js create mode 100644 libxsd/CMakeLists.txt create mode 100644 libxsd/include/xmlSerialize.h create mode 100644 libxsd/include/xmlparser.h create mode 100644 libxsd/include/xsd/config.h.cmake create mode 100644 libxsd/include/xsd/parser/document.h create mode 100644 libxsd/include/xsd/parser/elements.h create mode 100644 libxsd/include/xsd/parser/expat/elements.h create mode 100644 libxsd/include/xsd/parser/parser.h create mode 100644 libxsd/include/xsd/xmlschema.h create mode 100644 libxsd/include/xsd/xsd.h create mode 100644 libxsd/src/CMakeLists.txt create mode 100644 libxsd/src/document_expat.cpp create mode 100644 libxsd/src/elements.cpp create mode 100644 libxsd/src/parser.cpp create mode 100644 tests/CMakeLists.txt create mode 100644 tests/api/CMakeLists.txt create mode 100644 tests/api/api.xsd create mode 100644 tests/api/main.cpp create mode 100644 tests/basic/01basic.xsd create mode 100644 tests/basic/02basic.xsd create mode 100644 tests/basic/03basic.xsd create mode 100644 tests/basic/05all.xsd create mode 100644 tests/basic/06all.xsd create mode 100644 tests/basic/07all.xsd create mode 100644 tests/basic/08all.xsd create mode 100644 tests/basic/10group.xsd create mode 100644 tests/basic/11group.xsd create mode 100644 tests/basic/12group.xsd create mode 100644 tests/basic/20restriction.xsd create mode 100644 tests/basic/21restriction.xsd create mode 100644 tests/basic/22restriction.xsd create mode 100644 tests/basic/30extension.xsd create mode 100644 tests/basic/31extension.xsd create mode 100644 tests/basic/40list.xsd create mode 100644 tests/basic/41list.xsd create mode 100644 tests/basic/50union.xsd create mode 100644 tests/basic/60abstract.xsd create mode 100644 tests/basic/70sequence.xsd create mode 100644 tests/basic/71sequence.xsd create mode 100644 tests/basic/80choice.xsd create mode 100644 tests/basic/81choice.xsd create mode 100644 tests/basic/90attribute.xsd create mode 100644 tests/basic/91attribute.xsd create mode 100644 tests/basic/92attribute.xsd create mode 100644 tests/basic/93attribute.xsd create mode 100644 tests/basic/95attributeGroup.xsd create mode 100644 tests/basic/96attributeGroup.xsd create mode 100644 tests/basic/CMakeLists.txt create mode 100644 tests/basic/TCTmpl.cpp create mode 100644 tests/basic/TCTmpl.h create mode 100644 tests/basic/TestCase50union.cpp create mode 100644 tests/basic/TestCase50union.h create mode 100644 tests/basic/TestCaseAllBase.cpp create mode 100644 tests/basic/TestCaseAllBase.h create mode 100644 tests/basic/TestCaseAllExtension.cpp create mode 100644 tests/basic/TestCaseAllExtension.h create mode 100644 tests/basic/TestCaseAllGroup.cpp create mode 100644 tests/basic/TestCaseAllGroup.h create mode 100644 tests/basic/TestCaseAllRef.cpp create mode 100644 tests/basic/TestCaseAllRef.h create mode 100644 tests/basic/TestCaseAnoAttributeGroup.cpp create mode 100644 tests/basic/TestCaseAnoAttributeGroup.h create mode 100644 tests/basic/TestCaseAttribute.cpp create mode 100644 tests/basic/TestCaseAttribute.h create mode 100644 tests/basic/TestCaseAttributeGroup.cpp create mode 100644 tests/basic/TestCaseAttributeGroup.h create mode 100644 tests/basic/TestCaseAttributeOptional.cpp create mode 100644 tests/basic/TestCaseAttributeOptional.h create mode 100644 tests/basic/TestCaseAttributeRestricted.cpp create mode 100644 tests/basic/TestCaseAttributeRestricted.h create mode 100644 tests/basic/TestCaseComplexContentRestriction.cpp create mode 100644 tests/basic/TestCaseComplexContentRestriction.h create mode 100644 tests/basic/TestCaseComplexTypeChoice.cpp create mode 100644 tests/basic/TestCaseComplexTypeChoice.h create mode 100644 tests/basic/TestCaseComplexTypeSequence.cpp create mode 100644 tests/basic/TestCaseComplexTypeSequence.h create mode 100644 tests/basic/TestCaseCplxTpChoiceSequence.cpp create mode 100644 tests/basic/TestCaseCplxTpChoiceSequence.h create mode 100644 tests/basic/TestCaseGroup.cpp create mode 100644 tests/basic/TestCaseGroup.h create mode 100644 tests/basic/TestCaseList.cpp create mode 100644 tests/basic/TestCaseList.h create mode 100644 tests/basic/TestCaseRecurse.cpp create mode 100644 tests/basic/TestCaseRecurse.h create mode 100644 tests/basic/TestCaseSimpleContentExtensionAttribute.cpp create mode 100644 tests/basic/TestCaseSimpleContentExtensionAttribute.h create mode 100644 tests/basic/TestCaseSimpleContentRestriction.cpp create mode 100644 tests/basic/TestCaseSimpleContentRestriction.h create mode 100644 tests/basic/TestCaseSimpleSerialize.cpp create mode 100644 tests/basic/TestCaseSimpleSerialize.h create mode 100644 tests/basic/TestCaseSimpleType.cpp create mode 100644 tests/basic/TestCaseSimpleType.h create mode 100644 tests/basic/TestCaseSimpleTypeRestriction.cpp create mode 100644 tests/basic/TestCaseSimpleTypeRestriction.h create mode 100644 tests/basic/basic.xsd create mode 100644 tests/basic/main.cpp create mode 100644 tests/basic/main_parser.cpp create mode 100644 tests/basic/main_test.cpp create mode 100755 tests/basic/newtc.sh create mode 100644 tests/basic/xmlsources/01basic_01int.xml create mode 100644 tests/basic/xmlsources/01basic_02long.xml create mode 100644 tests/basic/xmlsources/01basic_03double.xml create mode 100644 tests/basic/xmlsources/01basic_04string.xml create mode 100644 tests/basic/xmlsources/01basic_05byte.xml create mode 100644 tests/basic/xmlsources/01basic_07short.xml create mode 100644 tests/basic/xmlsources/01basic_10date.xml create mode 100644 tests/basic/xmlsources/01basic_11dateTime.xml create mode 100644 tests/basic/xmlsources/01basic_12duration.xml create mode 100644 tests/basic/xmlsources/01basic_13gYear.xml create mode 100644 tests/basic/xmlsources/01basic_14gYearMonth.xml create mode 100644 tests/basic/xmlsources/01basic_15gMonthDay.xml create mode 100644 tests/basic/xmlsources/01basic_16gMonth.xml create mode 100644 tests/basic/xmlsources/01basic_17gDay.xml create mode 100644 tests/basic/xmlsources/01basic_18time.xml create mode 100644 tests/basic/xmlsources/01basic_20IDREFS.xml create mode 100644 tests/basic/xmlsources/01basic_21ENTITIES.xml create mode 100644 tests/basic/xmlsources/01basic_22NMTOKEN.xml create mode 100644 tests/basic/xmlsources/01basic_23token.xml create mode 100644 tests/basic/xmlsources/01basic_24QName.xml create mode 100644 tests/basic/xmlsources/01basic_25NCName.xml create mode 100644 tests/basic/xmlsources/01basic_26ID.xml create mode 100644 tests/basic/xmlsources/01basic_27IDREF.xml create mode 100644 tests/basic/xmlsources/03basic_recurse_01.xml create mode 100644 tests/basic/xmlsources/03basic_recurse_02.xml create mode 100644 tests/cwmp/CMakeLists.txt create mode 100644 tests/cwmp/TCElements.cpp create mode 100644 tests/cwmp/TCElements.h create mode 100644 tests/cwmp/main.cpp create mode 100644 tests/cwmp/main_test.cpp create mode 100644 tests/dependencies/01element.xsd create mode 100644 tests/dependencies/02element.xsd create mode 100644 tests/dependencies/03element.xsd create mode 100644 tests/dependencies/04element.xsd create mode 100644 tests/dependencies/05element.xsd create mode 100644 tests/dependencies/06element.xsd create mode 100644 tests/dependencies/07element.xsd create mode 100644 tests/dependencies/08element.xsd create mode 100644 tests/dependencies/09element.xsd create mode 100644 tests/dependencies/CMakeLists.txt create mode 100644 tests/dependencies/main_test.cpp create mode 100644 tests/ics_notifier/CMakeLists.txt create mode 100644 tests/ics_notifier/TCNotifier.cpp create mode 100644 tests/ics_notifier/TCNotifier.h create mode 100644 tests/ics_notifier/TCParseSubscribe.cpp create mode 100644 tests/ics_notifier/TCParseSubscribe.h create mode 100644 tests/ics_notifier/TCSoapNotifier.cpp create mode 100644 tests/ics_notifier/TCSoapNotifier.h create mode 100644 tests/ics_notifier/main_test.cpp create mode 100644 tests/ics_notifier/nsmap.xml create mode 100644 tests/kml/CMakeLists.txt create mode 100644 tests/kml/main_test.cpp create mode 100644 tests/pgml/CMakeLists.txt create mode 100644 tests/pgml/main_test.cpp create mode 100644 tests/soap/CMakeLists.txt create mode 100644 tests/soap/TCSoapSerialize.cpp create mode 100644 tests/soap/TCSoapSerialize.h create mode 100644 tests/soap/main.cpp create mode 100644 tests/soap/main_soap.cpp create mode 100644 tests/soap/main_test.cpp create mode 100644 tests/svg/CMakeLists.txt create mode 100644 tests/svg/main_test.cpp create mode 100644 tests/t8000/CMakeLists.txt create mode 100644 tests/t8000/main.cpp create mode 100644 tests/t8000/main_index.cpp create mode 100644 tests/t8000/merge_index.cpp create mode 100644 tests/umf/CMakeLists.txt create mode 100644 tests/umf/WbmTelphony/views/ArsGatewayDns.gml create mode 100644 tests/umf/WbmTelphony/views/ArsGatewayParameters.gml create mode 100644 tests/umf/WbmTelphony/views/ArsGatewayParametersAdd.gml create mode 100644 tests/umf/WbmTelphony/views/ArsGatewayParametersDelete.gml create mode 100644 tests/umf/WbmTelphony/views/ArsGatewayParametersModify.gml create mode 100644 tests/umf/WbmTelphony/views/ArsPrefixes.gml create mode 100644 tests/umf/WbmTelphony/views/ArsPrefixesAdd.gml create mode 100644 tests/umf/WbmTelphony/views/ArsPrefixesAddSubline.gml create mode 100644 tests/umf/WbmTelphony/views/ArsPrefixesDelete.gml create mode 100644 tests/umf/WbmTelphony/views/ArsPrefixesModify.gml create mode 100644 tests/umf/WbmTelphony/views/ArsSelectionList.gml create mode 100644 tests/umf/WbmTelphony/views/ArsSipPublicNumbering.gml create mode 100644 tests/umf/WbmTelphony/views/ArsSipPublicNumberingAdd.gml create mode 100644 tests/umf/WbmTelphony/views/ArsSipPublicNumberingDelete.gml create mode 100644 tests/umf/WbmTelphony/views/ArsSipPublicNumberingModify.gml create mode 100644 tests/umf/WbmTelphony/views/ArsTrunkGroupsLists.gml create mode 100644 tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAdd.gml create mode 100644 tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAddSubline.gml create mode 100644 tests/umf/WbmTelphony/views/ArsTrunkGroupsListsDelete.gml create mode 100644 tests/umf/WbmTelphony/views/ArsTrunkGroupsListsModify.gml create mode 100644 tests/umf/WbmTelphony/views/DevicesAdd.gml create mode 100644 tests/umf/WbmTelphony/views/DevicesDelete.gml create mode 100644 tests/umf/WbmTelphony/views/DevicesDetails.gml create mode 100644 tests/umf/WbmTelphony/views/DevicesList.gml create mode 100644 tests/umf/WbmTelphony/views/DevicesType.gml create mode 100644 tests/umf/WbmTelphony/views/EndOfDialingAdd.gml create mode 100644 tests/umf/WbmTelphony/views/EndOfDialingDelete.gml create mode 100644 tests/umf/WbmTelphony/views/EndOfDialingModify.gml create mode 100644 tests/umf/WbmTelphony/views/EndOfDialingModifyDefaultCounter.gml create mode 100644 tests/umf/WbmTelphony/views/ListOfAccesses.gml create mode 100644 tests/umf/WbmTelphony/views/NumberingPlansAddModify.gml create mode 100644 tests/umf/WbmTelphony/views/NumberingPlansDelete.gml create mode 100644 tests/umf/WbmTelphony/views/NumberingPlansMain.gml create mode 100644 tests/umf/WbmTelphony/views/NumberingSettings.gml create mode 100644 tests/umf/WbmUser/views/UserEdit.gml create mode 100644 tests/umf/WbmUser/views/UsersAccounts.gml create mode 100644 tests/umf/WbmUser/views/UsersDelete.gml create mode 100644 tests/umf/main.cpp create mode 100644 tests/uml2/CMakeLists.txt create mode 100644 tests/uml2/main.cpp create mode 100644 tests/uml2/main_test.cpp create mode 100644 tests/x3d/CMakeLists.txt create mode 100644 tests/x3d/main_test.cpp create mode 100644 tests/xmldsig/CMakeLists.txt create mode 100644 tests/xmldsig/main_test.cpp create mode 100644 tests/xpdl/CMakeLists.txt create mode 100644 tests/xpdl/main_test.cpp create mode 100644 tests/xslt/CMakeLists.txt create mode 100644 tests/xslt/TestCaseParseXsl.cpp create mode 100644 tests/xslt/TestCaseParseXsl.h create mode 100644 tests/xslt/main_test.cpp create mode 100644 tr069-header.xsl create mode 100644 tr069-source.xsl create mode 100644 tr069-utils.xsl create mode 100644 tr069.xsl create mode 100644 uml14-2-xsd.xsl create mode 100644 uml2dot.xsd create mode 100644 uuid.xsl create mode 100644 wsdl2.xsl create mode 100644 wsdl2soap-cpp.xsl create mode 100644 wsdl2soap-header.xsl create mode 100644 wsdl2soap-js.xsl create mode 100644 wsdl2soap-srv-hdr.xsl create mode 100644 wsdl2soap-srv-src.xsl create mode 100644 xsd2cpp-billing.xsl create mode 100644 xsd2cpp-default-value.xsl create mode 100644 xsd2cpp-gen.xsl create mode 100644 xsd2cpp-make-deps-3.xsl create mode 100644 xsd2cpp-make-deps-class.xsl create mode 100644 xsd2cpp-make-deps-deep.xsl create mode 100644 xsd2cpp-make-deps-doon.xsl create mode 100644 xsd2cpp-make-deps-on.xsl create mode 100644 xsd2cpp-make-deps.xsl create mode 100644 xsd2cpp-parser-hdr-event.xsl create mode 100644 xsd2cpp-parser-hdr-member.xsl create mode 100644 xsd2cpp-parser-header.xsl create mode 100644 xsd2cpp-parser-src-attribute.xsl create mode 100644 xsd2cpp-parser-src-end.xsl create mode 100644 xsd2cpp-parser-src-event.xsl create mode 100644 xsd2cpp-parser-src-post.xsl create mode 100644 xsd2cpp-parser.xsl create mode 100644 xsd2cpp-tpl.xsl create mode 100644 xsd2cpp-tree-hdr-choice-union.xsl create mode 100644 xsd2cpp-tree-hdr-inherit.xsl create mode 100644 xsd2cpp-tree-hdr-mbr-attr.xsl create mode 100644 xsd2cpp-tree-hdr-mbr-elem.xsl create mode 100644 xsd2cpp-tree-hdr-root.xsl create mode 100644 xsd2cpp-tree-hdr-setget.xsl create mode 100644 xsd2cpp-tree-hdr-type-mbr-get.xsl create mode 100644 xsd2cpp-tree-hdr-type-mbr-set.xsl create mode 100644 xsd2cpp-tree-hdr-typedef.xsl create mode 100644 xsd2cpp-tree-header.xsl create mode 100644 xsd2cpp-tree-src-constructor-params.xsl create mode 100644 xsd2cpp-tree-src-serialize-attribute.xsl create mode 100644 xsd2cpp-tree-src-serialize-element.xsl create mode 100644 xsd2cpp-tree-src-serialize-root.xsl create mode 100644 xsd2cpp-tree-src-serialize.xsl create mode 100644 xsd2cpp-tree-src-setget.xsl create mode 100644 xsd2cpp-tree.xsl create mode 100644 xsd2cpp-types.xsl create mode 100644 xsd2cpp-utils.xsl create mode 100644 xsd2cpp.java create mode 100644 xsd2cpp.xsl create mode 100644 xsd2cpp_saxon.java diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1ad5587 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,65 @@ +PROJECT(xml-t) +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +SET(WITH_XSD_TOOL FALSE CACHE TYPE BOOL) +SET(WITH_XSD_TOOL_TESTS OFF CACHE TYPE BOOL) + + +IF (WITH_XSD_TOOL) + +INCLUDE_DIRECTORIES("${aebutils_SOURCE_DIR}") +IF (WITH_XSD_TOOL_TESTS) +# Requires Cmake 2.8 +if (CMAKE_VERSION VERSION_GREATER 2.8.12 OR CMAKE_VERSION VERSION_EQUAL 2.8.12) + + MESSAGE("xml-transform TESTS ENABLED.") +SUBDIRS(libxsd tests) +find_package(Java REQUIRED) +include(UseJava) + +enable_testing() + + +set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.6" "-target" "1.6") +set(CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH}/Users/aeb/Downloads/xalan-j_2_7_1/xalan.jar") +#set(CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH}:/Users/aeb/Downloads/saxon9he.jar") +set(CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH}:/Users/aeb/Downloads/saxonb9-1-0-8j/saxon9.jar") + +#FILE(GLOB XSD2CPP_XSD "${CMAKE_CURRENT_SOURCE_DIR}/xsd2cpp*.xsl") +FILE(GLOB XSD2CPP_XSD "xsd2cpp*.xsl") +add_jar(xsd2cpp xsd2cpp.java ResourceResolver.java ${XSD2CPP_XSD}) +get_target_property(_jarFile xsd2cpp JAR_FILE) +get_target_property(_classDir xsd2cpp CLASSDIR) + +add_jar(xsd2cpp_saxon xsd2cpp_saxon.java ResourceResolver.java ${XSD2CPP_XSD}) +get_target_property(_jarFile xsd2cpp_saxon JAR_FILE) +get_target_property(_classDir xsd2cpp_saxon CLASSDIR) + + +message(STATUS "Jar file ${_jarFile}") +message(STATUS "Class compiled to ${_classDir}") + + + +INSTALL(DIRECTORY ./ + DESTINATION bin COMPONENT Application + FILES_MATCHING PATTERN "*.xsl" + PATTERN "CVS" EXCLUDE + PATTERN "libxsd" EXCLUDE + PATTERN "CMakeFiles" EXCLUDE + PATTERN "use-cases" EXCLUDE + PATTERN "tests" EXCLUDE) + + +ELSE () + MESSAGE("TESTS DISABLED. Cmake version must be > 2.8.12") + #end of test version +SUBDIRS(libxsd) +ENDIF() + +ELSE(WITH_XSD_TOOL_TESTS) +SUBDIRS(libxsd) +ENDIF(WITH_XSD_TOOL_TESTS) + +ENDIF(WITH_XSD_TOOL) + diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..3df40f8 --- /dev/null +++ b/README.txt @@ -0,0 +1,175 @@ +README + +This directory contains xsl 2.0 transformers. The main +purpose is to generate code from xmi and xsd description. + +Features like generating idl, cpp, csharp, java code +are important. + +xsd2cpp is the first tool I need. The goal is to provide +an object representation based on a xsd data description. + +uml14-2-xsd will traduce an UML model in xsd strucutures + +I introduced libxsd. This library must be used in conjonction +with xsd2cpp. What I have noticed, they are a many ways to +use parsing. For instance, expat is an event driven xml +driver. using that parser, +1) I can of course, build up an +object tree +2) I can also write an event driven parser .... + What do I want ? +The fact is that the function and implementations of the +objects will be different in both cases. +- Having a tree, I probably want to be able to serialze. + +What I need is a parser that builds a tree using expect. +How can I build the tree with specialized features ? +It's clear that the parser and the tree are two different things. +The final tree does not any more need the parsing feature. +A factory might ne required to build up the tree. + +That means on one side, I have parsing objects ! and +on the other, I have the tree objets !!! +The parser uses a factory to build up the tree. :e + +TODO, implement the any element and any attribute +features. +I was able to read the total soap envelop description. +I need to do the same with soap encoding, then +with cwmp. +If that works, I think I can attrack people +and provide the feature in OXO800. + +09/09/29: + - I started the implementation of optional attributes. The code + is not bad. I'm loocking for a way to link the serialisation and + parser. How the passe an optional element to post ? It does + not work, so I need to find another way. + - The way I build my objects is bad too. the constructors must be + improved. Using affectation is really bad. + +09/09/30: + - I corrected the issue, with constructor, I still need to look at + the AttributeGroup area. But globaly, it's much better now. + - Still need to treat optional elements. This will be the next + step. + - I started to write more test case, for all basic types. + +09/10/01: + - The implementation of sequences to treat maxOccurs = unbounded + starts working. I have an issue at the end. There is a double memory + release. + - I also corrected the bug, in debug feature. + - They are still pointers that need to be converted to shared ptr + - auto_ptr starts to become obsolete, so I might replace them. TODO + - +09/10/02: + - maxOccurs works for umf. Now, I start to see the problem with expact. + how to have a complete paring chain? + - I also noticed that I have recursion issues. I cannot use the same + parser at two different places !! This is crutial. + +11/03/30: + - There is still work for the private elements. + + + + + + + + +SEVERAL STEPS IN THE DEFINTION +------------------------------ + +1) The global view +------------------ + To generate CPP 1 XSD will generate 4 CPP files . + serialization header + serialization body + implementation header + implementation body + + What is important to keep is the namespace which will be used to + compute a cpp namespace. External namespace and imports are + also important. They help in the generation of the include part. + +1.1 serialization header +------------------------ + +The template will look like + +#ifndef [namespace]_H + /* Forward declaration of the classes. But it's not enought. + * Depending on the order of the elements, we might need to compute dependencies + * to order the elements so that the cpp compiler will not complain. Right + * now ecore.xsd does not compile at all. + */ + +class [complexType / simpleType / element[not(@type)]_skel; +... + +/* Now comes the declation for the classes */ + +/** + [annotation could go here] + */ +class [@name]_skel : public (xmlSerialize | [inheritance from restriction or +extension]) { + /* constructors */ + @name_skel() ; + @name_skel([parametes]) ; + /* destructors */ + + public: + /* setter and getter */ + + protected: + /* member attributes / elements (type name)*/ +}; + +#endif [namespace]_H + +1.2 template serialize implemetation +------------------------------------ + + +#include "[schemaLocation of import were .xsd -> .h]."; +... + +1.3 template parser header +-------------------------- + +2 TODO +------ + +2.1 xsd:include needs to be treated +----------------------------------- + +2.2 xsd:group needs to be treated in a better way +------------------------------------------------- + +2.3 Recursion is still an issue for parser +------------------------------------------- + +The example below does not work. + + + + + + + + +26/06/2011 +---------- +-> Need absolutly to treat + xsd:union + xsd:group + and xsd:list + + I still need to separate code generation for : + tree-src-constructor important pour les group (pas complet) + tree-src-serialize important pas complet pour les xsd:group; + xsd:union, xsd:list diff --git a/ResourceResolver.java b/ResourceResolver.java new file mode 100644 index 0000000..e8f611f --- /dev/null +++ b/ResourceResolver.java @@ -0,0 +1,54 @@ + +import javax.xml.transform.URIResolver; +import javax.xml.transform.Source; +import javax.xml.transform.TransformerException; +import javax.xml.transform.stream.StreamSource; +import java.io.InputStream; +import java.net.URL; +import java.util.Enumeration; +import java.util.Iterator; + + +public class ResourceResolver implements URIResolver { + private final URIResolver baseResolver; + + public ResourceResolver(final URIResolver r) { + baseResolver = r; + } + /* (non-Javadoc) + * @see javax.xml.transform.URIResolver#resolve(java.lang.String, java.lang.String) + */ + public Source resolve(String href, String base) throws TransformerException { + System.out.println("Try Resolve href="+href+" Base="+base); + if ("".equalsIgnoreCase(href)) { + return baseResolver.resolve(href,base); + } + try { + String pathWithinJar = "Users/aeb/Devs/home/tools/xml-transform/"; + + InputStream is = ClassLoader.getSystemResourceAsStream(pathWithinJar+href); + return new StreamSource(is, href); + } // try + catch (Exception ex) { + throw new TransformerException(ex); + } // catch + } // resolve + + /** + * @param href + * @return + * @throws TransformerException + */ + public InputStream resolve(String href) throws TransformerException { + System.out.println("Try Resolve no base : "+href); + try { + String pathWithinJar = "Users/aeb/Devs/home/tools/xml-transform/"; + + InputStream is = ClassLoader.getSystemResourceAsStream(pathWithinJar+href); + return is; + } // try + catch (Exception ex) { + throw new TransformerException(ex); + } // catch + } +} // ResourceResolver diff --git a/ajax-soap-proxy.js b/ajax-soap-proxy.js new file mode 100644 index 0000000..fd7cb58 --- /dev/null +++ b/ajax-soap-proxy.js @@ -0,0 +1,1020 @@ +// ajax.js +// Common Javascript methods and global objects +// Ajax framework for Internet Explorer (6.0, ...) and Firefox (1.0, ...) +// Copyright (c) by Matthias Hertel, http://www.mathertel.de +// This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx +// More information on: http://ajaxaspects.blogspot.com/ and http://ajaxaspekte.blogspot.com/ +// ----- +// 05.06.2005 created by Matthias Hertel. +// 19.06.2005 minor corrections to webservices. +// 25.06.2005 ajax action queue and timing. +// 02.07.2005 queue up actions fixed. +// 10.07.2005 ajax.timeout +// 10.07.2005 a option object that is passed from ajax.Start() to prepare() is also queued. +// 10.07.2005 a option object that is passed from ajax.Start() to prepare(), finish() +// and onException() is also queued. +// 12.07.2005 correct xml encoding when CallSoap() +// 20.07.2005 more datatypes and XML Documents +// 20.07.2005 more datatypes and XML Documents fixed +// 06.08.2005 caching implemented. +// 07.08.2005 bugs fixed, when queuing without a delay time. +// 04.09.2005 bugs fixed, when entering non-multiple actions. +// 07.09.2005 proxies.IsActive added +// 27.09.2005 fixed error in handling bool as a datatype +// 13.12.2005 WebServices with arrays on strings, ints, floats and booleans - still undocumented +// 27.12.2005 fixed: empty string return values enabled. +// 27.12.2005 enable the late binding of proxy methods. +// 21.01.2006 void return bug fixed. +// 18.02.2006 typo: Finsh -> Finish. +// 25.02.2006 better xmlhttp request object retrieval, see http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx +// 22.04.2006 progress indicator added. +// 28.01.2006 void return bug fixed again? +// 09.03.2006 enable late binding of prepare and finish methods by using an expression. +// 14.07.2006 Safari Browser Version 2.03/Mac OS X 10.4. compatibility: xNode.textContent || xNode.innerText || xNode.text || xNode.childNodes[0].nodeValue +// 10.08.2006 date to xml format fixed by Kars Veling +// 16.09.2006 .postUrl -- unfinished... +// 26.11.2006 enable null for xml based objects +// 19.05.2007 enabling ajax engine calls with multiple parameters +// 14.07.2007 xml2json added. +// 14.09.2007 ajax._resolve implemented to avoid the eval function +// 19.09.2007 lots of changes to get a better code as suggested by Breton Slivka (Thanks) +// 01.10.2007 ... more of it. +// 13.10.2007 structured parameter support for calling webservice methods +// 16.10.2007 xml2json bug fixed +// 10.11.2008 better documentation support. +// 10.11.2008 inspectText added. +// 30.11.2008 ajax.StartLocalAction added. +// 03.01.2009 better handling of the result namespace +// 27.04.2009 some issues when using ajax.js standalone, including the xml compatible code +// in FireFOx for XMLDocument.selectSingleNode + +// ----- global variable for the proxies to webservices. ----- + +var proxies = function() { + /// The root object for the proxies to webservices. +}; + +if (window.OpenAjax && window.OpenAjax.hub) { + OpenAjax.hub.registerLibrary("proxies", "http://www.mathertel.de/proxies", "1.5", {}); +} // if + +proxies.current = null; // the current active webservice call. +proxies.xmlhttp = null; // The current active xmlhttp object. + + +// ----- global variable for the ajax engine. ----- + +var ajax = { + /// The root object for the ajax engine implementation. + /// The current active AJAX action. + current: null, + /// The options for the current active AJAX action. + option: null, + + /// The pending AJAX actions. + queue: [], + /// The options for the pending AJAX actions. + options: [], + + /// Detect InternetExplorer for some specific implementation differences. + isIE: (window.navigator.userAgent.indexOf("MSIE") > 0) + +}; + +if (window.OpenAjax && window.OpenAjax.hub) { + OpenAjax.hub.registerLibrary("ajax", "http://www.mathertel.de/ajax", "1.5", {}); +} // if + +ajax.timer = null; /// The timer for delayed actions. + +ajax.progress = false; /// show a progress indicator +ajax.progressTimer = null; /// a timer-object that help displaying the progress indicator not too often. + +// ----- AJAX engine and actions implementation ----- + +ajax.Action = { + /// An action object with default values for declaring the details of ajax actions. + /// If set to true, the queue will be cleard before this action is added. + queueClear:false, + queueTop:false, + queueMultiple:true, + /// The call that invokes some action on the server. + call: null, + prepare: null, + finish: null +}; // Action + + +ajax.Start = function(action, options) { + ///Start an AJAX action by entering it into the queue + ///An object declaring the ajax action that should be executed. + ///A optional parameter that is passed to the action methods. + + ajax.Add(action, options); + // check if the action should start + if ((!ajax.current) && (!ajax.timer)) { + ajax._next(false); + } // if +}; // ajax.Start + + +ajax.StartLocalAction = function(method, options) { + ///Start an non-AJAX action that actls only locally in the browser by entering it into the queue + ///The method that will be called. + ///A optional parameter that is passed to the action methods. + var a = { queueClear: false, queueTop: false, queueMultiple: true }; // simple action + a.delay = 1; + a.prepare = method; + ajax.Start(a, options); +}; // ajax.StartLocalAction + + +ajax.Add = function(action, options) { + ///Add an AJAX action by entering it into the queue without starting it. + ///An object declaring the ajax action that should be executed. + ///A optional parameter that is passed to the action methods. + if (!action) { + alert("ajax.Start: Argument action must be set."); + return; + } // if + + // enable the late binding of the methods by using a string that is evaluated. + if (typeof (action.call) == "string") action.call = ajax._resolve(action.call); + if (typeof (action.prepare) == "string") action.prepare = ajax._resolve(action.prepare); + if (typeof (action.finish) == "string") action.finish = ajax._resolve(action.finish); + + if ((action.queueClear) && (action.queueClear == true)) { + ajax.queue = []; + ajax.options = []; + + } else if ((ajax.queue.length > 0) && ((!action.queueMultiple) || (action.queueMultiple == false))) { + // remove existing action entries from the queue and clear a running timer + if ((ajax.timer) && (ajax.queue[0] == action)) { + window.clearTimeout(ajax.timer); + ajax.timer = null; + } // if + + var n = 0; + while (n < ajax.queue.length) { + if (ajax.queue[n] == action) { + ajax.queue.splice(n, 1); + ajax.options.splice(n, 1); + } else { + n++; + } // if + } // while + } // if + + if ((!action.queueTop) || (action.queueTop == false)) { + // to the end. + ajax.queue.push(action); + ajax.options.push(options); + + } else { + // to the top + ajax.queue.unshift(action); + ajax.options.unshift(options); + } // if +}; // ajax.Add + + +ajax._next = function(forceStart) { + ///Check, if the next AJAX action can start. + ///This is an internal method that should not be called from external. + ///for private use only. + var ca = null; // current action + var co = null; // current opptions + var data = null; + + if (ajax.current) + return; // a call is active: wait more time + + if (ajax.timer) + return; // a call is pendig: wait more time + + if (ajax.queue.length == 0) + return; // nothing to do. + + ca = ajax.queue[0]; + co = ajax.options[0]; + if ((forceStart == true) || (!ca.delay) || (ca.delay == 0)) { + // start top action + ajax.current = ca; + ajax.queue.shift(); + ajax.option = co; + ajax.options.shift(); + + // get the data + if (ca.prepare) { + try { + data = ca.prepare(co); + } catch (ex) { } + } // if + + if (ca.call) { + ajax.StartProgress(); + + // start the call + ca.call.func = ajax.Finish; + ca.call.onException = ajax.Exception; + if ((data.constructor == Array) && (data.multi)) // 19.05.2007 + ca.call.apply(ca, data); + else + ca.call(data); + // start timeout timer + if (ca.timeout) { + ajax.timer = window.setTimeout(ajax.Cancel, ca.timeout * 1000); + } // if + + } else if (ca.postUrl) { + // post raw data to URL + + } else { + // no call + ajax.Finish(data); + } // if + + } else { + // start a timer and wait + ajax.timer = window.setTimeout(ajax.EndWait, ca.delay); + } // if +}; // ajax._next + + +ajax.EndWait = function() { + ///The delay time of an action is over. + ajax.timer = null; + ajax._next(true); +}; // ajax.EndWait + + +ajax.Cancel = function() { + ///The current action timed out. + proxies.cancel(false); // cancel the current webservice call. + ajax.timer = null; + ajax.current = null; + ajax.option = null; + ajax.EndProgress(); + window.setTimeout(ajax._next, 200); // give some to time to cancel the http connection. +}; // ajax.Cancel + + +ajax.Finish = function(data) { + ///Finish an AJAX Action the normal way + // clear timeout timer if set + if (ajax.timer) { + window.clearTimeout(ajax.timer); + ajax.timer = null; + } // if + + // use the data + try { + if ((ajax.current) && (ajax.current.finish)) + ajax.current.finish(data, ajax.option); + } catch (ex) { } + // reset the running action + ajax.current = null; + ajax.option = null; + ajax.EndProgress(); + ajax._next(false); +}; // ajax.Finish + + +ajax.Exception = function(ex) { + ///Finish an AJAX Action with an exception + // use the data + if (ajax.current.onException) + ajax.current.onException(ex, ajax.option); + + // reset the running action + ajax.current = null; + ajax.option = null; + ajax.EndProgress(); +}; // ajax.Exception + + +ajax.CancelAll = function() { + ///Clear the current and all pending AJAX actions. + ajax.Cancel(); + // clear all pending AJAX actions in the queue. + ajax.queue = []; + ajax.options = []; +}; // ajax.CancelAll + + +// ----- show or hide a progress indicator ----- + +ajax.StartProgress = function() { + ///Show a progress indicator if it takes longer... + ajax.progress = true; + if (ajax.progressTimer) + window.clearTimeout(ajax.progressTimer); + ajax.progressTimer = window.setTimeout(ajax.ShowProgress, 220); +}; // ajax.StartProgress + + +ajax.EndProgress = function() { + ///Hide any progress indicator soon. + ajax.progress = false; + if (ajax.progressTimer) + window.clearTimeout(ajax.progressTimer); + ajax.progressTimer = window.setTimeout(ajax.ShowProgress, 20); +}; // ajax.EndProgress + + +ajax.ShowProgress = function() { + ///This function is called by a timer to show or hide a progress indicator. + ajax.progressTimer = null; + var a = document.getElementById("AjaxProgressIndicator"); + var s; + if (ajax.progress && (a)) { + // just display the existing object + a.style.top = document.documentElement.scrollTop + 2 + "px"; + a.style.display = ""; + + } else if (ajax.progress) { + + // find a relative link to the ajaxcore folder containing ajax.js + var path = "../ajaxcore/"; + for (var n in document.scripts) { + s = document.scripts[n].src; + if ((s) && (s.length >= 7) && (s.substr(s.length - 7).toLowerCase() == "ajax.js")) + path = s.substr(0, s.length - 7); + } // for + + // create new standard progress object + a = document.createElement("div"); + a.id = "AjaxProgressIndicator"; + a.style.position = "absolute"; + a.style.right = "2px"; + a.style.top = document.documentElement.scrollTop + 2 + "px"; + a.style.width = "98px"; + a.style.height = "16px"; + a.style.padding = "2px"; + a.style.verticalAlign = "bottom"; + a.style.backgroundColor = "#51c77d"; + + a.innerHTML = " please wait..."; + document.body.appendChild(a); + + } else if (a) { + a.style.display = "none"; + } // if +}; // ajax.ShowProgress + + +ajax._resolve = function(s) { + ///Resolve a method reference given as a string + /// by following the objects from the window object down to the concrete method. + var ref = null; + if ((s) && (s.length != 0)) { + ref = window; + s = s.split('.'); + for (var n = 0; (n < s.length) && (ref); n++) + ref = ref[s[n]]; + } // if + return (ref); +}; // _resolve + + +// ----- simple http-POST server call ----- + +ajax.postData = function(url, data, func) { + var x = proxies._getXHR(); + + // enable cookieless sessions: + var cs = document.location.href.match(/\/\(.*\)\//); + if (cs) { + url = url.split('/'); + url[3] += cs[0].substr(0, cs[0].length - 1); + url = url.join('/'); + } // if + + x.open("POST", url, (func)); + + if (func) { + // async call with xmlhttp-object as parameter + x.onreadystatechange = func; + x.send(data); + + } else { + // sync call + x.send(data); + return (x.responseText); + } // if +}; // ajax.postData + + +proxies.callSoap = function(args) { + ///Execute a soap call. + ///Build the xml for the call of a soap method of a webservice and post it to the server. + var p = args.callee; + var x = null; + var n; + // check for existing cache-entry + if (p._cache) { + if ((p.params.length == 1) && (args.length == 1) && (p._cache[args[0]])) { + if (p.func) { + p.func(p._cache[args[0]]); + return (null); + } else { + return (p._cache[args[0]]); + } // if + } else { + p._cachekey = args[0]; + } // if + } // if + + proxies.current = p; + x = proxies._getXHR(); + proxies.xmlhttp = x; + + // envelope start + var soap = "" + + "" + + "" + + "<" + p.fname + " xmlns='" + p.service.ns + "'>"; + + // parameters + for (n = 0; (n < p.params.length) && (n < args.length); n++) { + var val = args[n]; + var typ = p.params[n].split(':'); + + if ((typ.length == 1) || (typ[1] == "string")) { + val = String(args[n]).replace(/&/g, "&").replace(//g, ">"); + + } else switch (typ[1]) { + case "int": + val = parseInt(args[n], 10); + break; + case "float": + val = parseFloat(args[n]); + break; + case "x": + if (typeof (args[n]) == "string") { + val = args[n]; + } else if (typeof (XMLSerializer) != "undefined") { + val = (new XMLSerializer()).serializeToString(args[n].firstChild); + } else if (args[n]) { + val = args[n].xml; + } // if + break; + case "ds": // 12.10.2007 complex parameter support + val = ""; + if (typeof (args[n]) == "string") { + val = args[n]; // inner xml + + } else if (args[n].constructor == Object) { + var obj = args[n]; + for (var prop in obj) { + val += "<" + prop + ">"; + val += String(obj[prop]).replace(/&/g, "&").replace(//g, ">"); + val += ""; + } + + } else if (args[n]) { + var xprop = args[n].documentElement.firstChild; + while (xprop != null) { + val += "<" + xprop.tagName + ">"; + val += String(xprop.text || xprop.textContent).replace(/&/g, "&").replace(//g, ">"); + val += ""; + xprop = xprop.nextSibling; + } // for + + } // if + break; + case "bool": + if (typeof (args[n]) == "string") { + val = args[n].toLowerCase(); + } else { + val = String(args[n]).toLowerCase(); + } // if + break; + case "date": + // calculate the xml format for datetime objects from a javascript date object + var s, ret; + ret = String(val.getFullYear()); + ret += "-"; + s = String(val.getMonth() + 1); + ret += (s.length == 1 ? "0" + s : s); + ret += "-"; + s = String(val.getDate()); + ret += (s.length == 1 ? "0" + s : s); + ret += "T"; + s = String(val.getHours()); + ret += (s.length == 1 ? "0" + s : s); + ret += ":"; + s = String(val.getMinutes()); + ret += (s.length == 1 ? "0" + s : s); + ret += ":"; + s = String(val.getSeconds()); + ret += (s.length == 1 ? "0" + s : s); + val = ret; + break; + case "s[]": + val = proxies._wrapArray2Xml(args[n], "string"); + break; + case "int[]": + val = proxies._wrapArray2Xml(args[n], "int"); + break; + case "float[]": + val = proxies._wrapArray2Xml(args[n], "float"); + break; + case "bool[]": + val = proxies._wrapArray2Xml(args[n], "boolean"); + break; + } // switch + soap += "<" + typ[0] + ">" + val + ""; + } // for + + // envelope end + soap += "" + + "" + + ""; + + // enable cookieless sessions: + var u = p.service.url; + var cs = document.location.href.match(/\/\(.*\)\//); + if (cs) { + u = p.service.url.split('/'); + u[3] += cs[0].substr(0, cs[0].length - 1); + u = u.join('/'); + } // if + + x.open("POST", u, (p.func != null)); + x.setRequestHeader("SOAPAction", p.action); + x.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); + + if (p.corefunc) { + // async call with xmlhttp-object as parameter + x.onreadystatechange = p.corefunc; + x.send(soap); + + } else if (p.func) { + // async call + x.onreadystatechange = proxies._response; + x.send(soap); + + } else { + // sync call + x.send(soap); + return (proxies._response()); + } // if +}; // proxies.callSoap + + +proxies.cancel = function(raise) { + ///Cancel the running webservice call. + //If set to true an exception will be thrown through the onException function. + var cc = proxies.current; + var cx = proxies.xmlhttp; + + if (!raise) raise == true; + + if (cx) { + cx.onreadystatechange = function() { }; + cx.abort(); + if (raise && (cc.onException)) + cc.onException("WebService call was canceled."); + proxies.current = null; + proxies.xmlhttp = null; + } // if +}; // proxies.cancel + + +proxies.EnableCache = function(px) { + ///Attach an empty _cache object. + ///A proxies.service.func object. + px._cache = {}; +}; // proxies.EnableCache + + +proxies.IsActive = function() { + ///Check, if a call is currently waiting for a result. + return (proxies.xmlhttp); +}; // proxies.IsActive + + +proxies._response = function() { + ///Callback method for a webservice call that dispatches the response to servive.func or service.onException. + ///for private use only. + var ret = null; + var n = null; + var x = proxies.xmlhttp; + var cc = proxies.current; + var rtype = null; + + if ((cc.rtype.length > 0) && (cc.rtype[0])) + rtype = cc.rtype[0].split(':'); + + if ((x) && (x.readyState == 4)) { + if (x.status == 200) { + var xNode = null; + + if (rtype) { + // doc->(envelope)->(body)->(response)->RESULT (avoiding namespace alias problems + if (ajax.isIE) { + x.responseXML.setProperty("SelectionLanguage", "XPath"); + xNode = x.responseXML.selectSingleNode("//*[local-name()='" + rtype[0] + "']"); + } else { + //FireFox + xNode = x.responseXML.getElementsByTagName(rtype[0])[0]; + } // if + } // if + + if (!xNode) { + ret = null; + + } else if (!xNode.firstChild) { // 27.12.2005: empty string return values + ret = ((rtype.length == 1) || (rtype[1] == "string") ? "" : null); + + } else if ((rtype.length == 1) || (rtype[1] == "string")) { + ret = proxies._getAnyXmlText(xNode); + + } else switch (rtype[1]) { + case "bool": + ret = proxies._getAnyXmlText(xNode); + ret = (ret == "true"); + break; + case "int": + ret = proxies._getAnyXmlText(xNode); + ret = parseInt(ret, 10); + break; + case "float": + ret = proxies._getAnyXmlText(xNode); + ret = parseFloat(ret); + break; + case "x": + if (window.XMLSerializer) { + ret = (new window.XMLSerializer()).serializeToString(xNode.firstChild); + ret = ajax._getXMLDOM(ret); + } else { + ret = xNode.firstChild.xml; + ret = ajax._getXMLDOM(ret); + } // if + break; + case "ds": + if (window.XMLSerializer) { + ret = (new window.XMLSerializer()).serializeToString(xNode); + ret = ajax._getXMLDOM(ret); + } else { + ret = xNode.xml; + ret = ajax._getXMLDOM(ret); + } // if + break; + case "s[]": + // Array of strings + ret = []; + xNode = xNode.firstChild; + while (xNode) { + ret.push(proxies._getAnyXmlText(xNode)); + xNode = xNode.nextSibling; + } // while + break; + case "int[]": + // Array of int + ret = []; + xNode = xNode.firstChild; + while (xNode) { + ret.push(parseInt(proxies._getAnyXmlText(xNode))); + xNode = xNode.nextSibling; + } // while + break; + case "float[]": + // Array of float + ret = []; + xNode = xNode.firstChild; + while (xNode) { + ret.push(parseFloat(proxies._getAnyXmlText(xNode))); + xNode = xNode.nextSibling; + } // while + break; + case "bool[]": + // Array of bool + ret = []; + xNode = xNode.firstChild; + while (xNode) { + ret.push((proxies._getAnyXmlText(xNode)).toLowerCase() == "true"); + xNode = xNode.nextSibling; + } // while + break; + default: + ret = proxies._getAnyXmlText(xNode); + break; + } // switch + + // store to _cache + if ((cc._cache) && (cc._cachekey)) { + cc._cache[cc._cachekey] = ret; + cc._cachekey = null; + } // if + + proxies.xmlhttp = null; + proxies.current = null; + + if (!cc.func) { + return (ret); // sync + } else { + cc.func(ret); // async + return (null); + } // if + + } else if (!proxies.current.onException) { + // no exception + + } else { + // raise an exception + ret = new Error(); + + if (x.status == 404) { + ret.message = "The webservice could not be found."; + + } else if (x.status == 500) { + ret.name = "SoapException"; + + if (ajax.isIE) + x.responseXML.setProperty("SelectionLanguage", "XPath"); + + n = x.responseXML.selectSingleNode("//*[local-name()='Fault']/faultcode"); + if (n) ret.message = n.firstChild.nodeValue; + n = x.responseXML.selectSingleNode("//*[local-name()='Fault']/faultstring"); + if (n) ret.description = n.firstChild.nodeValue; + + } else if ((x.status == 502) || (x.status == 12031)) { + ret.message = "The server could not be found."; + + } else { + // no classified response. + ret.message = "Result-Status:" + x.status + "\n" + x.responseText; + } // if + proxies.current.onException(ret); + } // if + + proxies.xmlhttp = null; + proxies.current = null; + } // if +}; // proxies._response + + +proxies.alertResult = function() { + ///Callback method to show the result of a soap call in an alert box. + ///To set up a debug output in an alert box use: + ///proxies.service.method.corefunc = proxies.alertResult; + var x = proxies.xmlhttp; + + if (x.readyState == 4) { + if (x.status == 200) { + if (!x.responseXML.documentElement.firstChild.firstChild.firstChild) + alert("(no result)"); + else + alert(x.responseXML.documentElement.firstChild.firstChild.firstChild.firstChild.nodeValue); + + } else if (x.status == 404) { + alert("Error!\n\nThe webservice could not be found."); + + } else if (x.status == 500) { + // a SoapException + var ex = new Error(); + ex.name = "SoapException"; + var n = x.responseXML.documentElement.firstChild.firstChild.firstChild; + while (n) { + if (n.nodeName == "faultcode") ex.message = n.firstChild.nodeValue; + if (n.nodeName == "faultstring") ex.description = n.firstChild.nodeValue; + n = n.nextSibling; + } // while + alert("The server threw an exception.\n\n" + ex.message + "\n\n" + ex.description); + + } else if (x.status == 502) { + alert("Error!\n\nThe server could not be found."); + + } else { + // no classified response. + alert("Result-Status:" + x.status + "\n" + x.responseText); + } // if + + proxies.xmlhttp = null; + proxies.current = null; + } // if +}; // proxies.alertResult + + +proxies.alertResponseText = function() { + ///Show all the details of the returned data of a webservice call. + ///Use this method for debugging transmission problems. + ///To set up a debug output in an alert box use: + ///proxies.service.method.corefunc = proxies.alertResponseText; + if (proxies.xmlhttp.readyState == 4) + alert("Status:" + proxies.xmlhttp.status + "\nRESULT:" + proxies.xmlhttp.responseText); +}; // proxies.alertResponseText + + +proxies.alertException = function(ex) { + ///Show the details about an exception. + var s = "Exception:\n\n"; + + if (ex.constructor == String) { + s = ex; + } else { + if ((ex.name) && (ex.name != "")) + s += "Type: " + ex.name + "\n\n"; + + if ((ex.message) && (ex.message != "")) + s += "Message:\n" + ex.message + "\n\n"; + + if ((ex.description) && (ex.description != "") && (ex.message != ex.description)) + s += "Description:\n" + ex.description + "\n\n"; + } // if + alert(s); +}; // proxies.alertException + + +proxies._getXHR = function() { + ///Get a browser specific implementation of the XMLHttpRequest object. + // from http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx + var x = null; + if (window.XMLHttpRequest) { + // if IE7, Mozilla, Safari, etc: Use native object + x = new XMLHttpRequest(); + + } else if (window.ActiveXObject) { + // ...otherwise, use the ActiveX control for IE5.x and IE6 + try { x = new ActiveXObject("Msxml2.XMLHTTP"); } catch (ex1) { } + if (!x) { + try { x = new ActiveXObject("Microsoft.XMLHTTP"); } catch (ex2) { } + } // if + } // if + return (x); +}; // proxies._getXHR + + +ajax._getXMLDOM = function(xmlText) { + ///Get a browser specific implementation of the XMLDOM object, containing a XML document. + ///the xml document as string. + var obj = null; + + if ((document.implementation) && (typeof document.implementation.createDocument == "function")) { + // Gecko / Mozilla / Firefox + var parser = new DOMParser(); + obj = parser.parseFromString(xmlText, "text/xml"); + + } else { + // IE + try { + obj = new ActiveXObject("MSXML2.DOMDocument"); + } catch (ex1) { } + + if (!obj) { + try { + obj = new ActiveXObject("Microsoft.XMLDOM"); + } catch (ex2) { } + } // if + + if (obj) { + obj.async = false; + obj.validateOnParse = false; + } // if + obj.loadXML(xmlText); + } // if + return (obj); +}; // _getXMLDOM + + +proxies.xml2json = function(xObj) { + ///Convert complex XML structures to JavaScript objects (JSON). + var ret = {}; + if (xObj.nodeType == 9) + return (this.xml2json(xObj.documentElement)); + + var n = xObj.firstChild; + if (n == null) { + if (xObj.getAttribute("xsi:nil") == "true") { + ret = null; + } else { + ret = ""; + } // if + + } else if (n.nodeType == 3) { + // just a text node. + ret = n.nodeValue; + + } else { + // a complex node: analyse all subnodes + while (n) { + var nn = n.nodeName; + // strip namespace aliases from node names: n1: --> + if (nn.indexOf(':') > 0) { + nn = nn.split(":")[1]; + } // if + + var nv = this.xml2json(n); // recursion ! + if (!ret[nn]) { + // maybe just a simple nested value + ret[nn] = nv; + } else if (ret[nn].constructor == Array) { + // nn is already an array, now with another value + ret[nn].push(nv); + } else { + // if more than 1 element with the same name is present + // an array is used to collect them all. + var tmp = []; + tmp[0] = ret[nn]; + tmp[1] = nv; + ret[nn] = tmp; + } // if + n = n.nextSibling; + } // while + } // if + return (ret); +}; // xml2json + + +proxies._wrapArray2Xml = function(arr, tagname) { + ///Wrap array in xml tags helper. + ///An array containing values. + ///The tagname used in the array. + var ts = "<" + tagname + ">"; + var te = ""; + var tm = te + ts; + return (ts + arr.join(tm) + te); +}; + + +proxies._getAnyXmlText = function(node) { + ///Factoring out getting text from a node. + return (node.textContent || node.innerText || node.text || node.childNodes[0].nodeValue); +}; + + +function inspectObj(obj) { + ///Show the details of a javascript object using an alert box. + ///This helps a lot while developing and debugging. + alert(inspectText(obj)); +}; // inspectObj + + +window.inspectText = function(obj) { + ///Create a textual view of the details of a javascript object. + var s = "InspectObj:"; + var n, p; + + if (!obj) { + s = "(null)"; return (s); + } else if (obj.constructor == String) { + s = "\"" + obj + "\""; + } else if (obj.constructor == Array) { + s += " _ARRAY"; + } else if (typeof (obj) == "function") { + s += " [function]" + obj; + + } else if ((typeof (XMLSerializer) != "undefined") && (obj.constructor == XMLDocument)) { + s = "[XMLDocument]:\n" + (new XMLSerializer()).serializeToString(obj.firstChild); + return (s); + + } else if ((typeof (obj) == "object") && (obj.xml)) { + s = "[XML]:\n" + obj.xml; + return (s); + } + + for (p in obj) { + try { + if (!obj[p]) { + s += "\n" + String(p) + " (...)"; + + } else if (typeof (obj[p]) == "function") { + s += "\n" + String(p) + " [function]"; + + } else if (obj[p].constructor == Array) { + s += "\n" + String(p) + " [ARRAY]: " + obj[p]; + for (n = 0; n < obj[p].length; n++) + s += "\n " + n + ": " + obj[p][n]; + + } else { + s += "\n" + String(p) + " [" + typeof (obj[p]) + "]: " + obj[p]; + } // if + } catch (e) { s += e; } + } // for + return (s); +}; // inspectObj + + +// ----- make FF more IE compatible ----- +if (!ajax.isIE) { + // ----- XML objects ----- + + // select the first node that matches the XPath expression + // xPath: the XPath expression to use + if (!XMLDocument.selectSingleNode) { + XMLDocument.prototype.selectSingleNode = function(xPath) { + var doc = this; + if (doc.nodeType != 9) + doc = doc.ownerDocument; + if (doc.nsResolver == null) doc.nsResolver = function(prefix) { return (null); }; + var node = doc.evaluate(xPath, this, doc.nsResolver, XPathResult.ANY_UNORDERED_NODE_TYPE, null); + if (node) node = node.singleNodeValue; + return (node); + }; // selectSingleNode + } // if +} // if + +// ----- End ----- + diff --git a/libxsd/CMakeLists.txt b/libxsd/CMakeLists.txt new file mode 100644 index 0000000..d0ea765 --- /dev/null +++ b/libxsd/CMakeLists.txt @@ -0,0 +1,11 @@ +PROJECT(xsd) +SUBDIRS(src) + +INCLUDE_DIRECTORIES("${aebutils_SOURCE_DIR}") +# +# Some usfull options +# +OPTION(WSD_WITH_BOOST "Build libxsd with boost dependency" OFF) +OPTION(XSD_WITH_AEB "Build libxsd with aeb shared pointer" ON) +CONFIGURE_FILE(${xsd_SOURCE_DIR}/include/xsd/config.h.cmake + ${xsd_SOURCE_DIR}/include/xsd/config.h) diff --git a/libxsd/include/xmlSerialize.h b/libxsd/include/xmlSerialize.h new file mode 100644 index 0000000..156ba8f --- /dev/null +++ b/libxsd/include/xmlSerialize.h @@ -0,0 +1,21 @@ +#ifndef XML_SERIALIZE_H +#define XML_SERIALIZE_H + +class xmlSerialiser; +class xmlSerializer +{ + public: + xmlSerializer() : m_withNamespace(false),me_any(NULL) {}; + ~xmlSerializer() {}; + inline void use_namespace(bool b) {m_withNamespace=b;}; + virtual void serialize_any(std::ostream &os) {std::cout<<"bad if here"< +#include +#include + +#define XML_BUFFER_SIZE 16384 + +namespace xml { + + namespace sax { + + /** + * + * + */ + template + class parser { + public: + parser() : m_parser(NULL) {} + // + void onStartElement(const CML_Char *name,const XML_Char **attr) + { + T *_cls = dynamic_cast< T *>(this); + if (_cls) + _cls->onStartElement(name,attr); + } + // + void onEndElement(const XML_Char *name) + { + T *_cls = dynamic_cast< T *>(this); + if (_cls) + _cls->onEndElement(name,attr); + } + // + void onCharacters(const XML_Char *name,size_t sz) + { + T *_cls = dynamic_cast< T *>(this); + if (_cls) + _cls->onCharacters(name,sz); + } + + void parse(std::istream &is) + { + void *buf = NULL; + m_parser = XML_ParserCreateNS(0,XML_Char(' ')); + + parser_init(); + + do + { + buf = XML_GetBuffer(m_parser,XML_BUFFER_SIZE); + + is.read(buf,XML_BUFFER_SIZE); + + if (is.bad() || (is.fail() && !is.eof())) + { + break; /* End of parsing */ + } + if (XML_Parse ( m_parser,buf,is.gcount(),is.eof()) == XML_STATUS_ERROR) + { + break; + } + } + while (! is.eof()); + + parser_clear(); + } + } + // + void parse(const std::string &str); + /** + * Global functions registers + * during template instanciation + * + */ + static void XMLCALL startElement_glb(void *user_data, const XML_Char *,const XML_Char **attr) + { + parser &doc = (*reinterpret_cast(d)); + doc.startElement(ns,attr); + } + + static void XMLCALL endElement_glb(void *user_data,const XML_Char *name) + { + } + + static void XMLCALL characters_glb(void *user_data,const XML_Char *ns,int dt) + { + } + + static void XMLCALL startNamespace_glb(void *user_data, const XML_Char *prefix,const XML_Char *uri) + { + } + + static void XMLCALL endNamespace_glb(void *user_data, const XML_Char *prefix) + { + } + /* + * + */ + void parser_init() + { + XML_SetUserData(m_parser,this); + + XML_SetStartElementHandler(m_parser,startElement_glb); + + XML_SetEndElementHandler(m_parser,endElement_glb); + + XML_SetCharacterDataHandler(m_parser,characters_glb); + + XML_SetNamespaceDeclHandler(m_parser,startNamespace_glb,endNamespace_glb); + } + /** + * + * + */ + void parser_clear() + { + XML_SetUserData(m_parser,0); + XML_SetStartElementHandler(m_parser,0); + XML_SetEndElementHandler(m_parser,0); + XML_SetNamespaceDeclHandler(m_parser,0,0); + } + + protected: + XML_Parser *m_parser; + }; + } + }; + + + /** + * + * + */ + class parserImpl : parser + { + public: + parserImpl() {}; + virtual void onStartElement(const CML_Char *name,const XML_Char **attr) + { + } + virtual void onEndElement(const XML_Char *name) + { + } + virtual void onCharacters(const XML_Char *name,size_t sz) + { + } + protected: + }; + }; + +}; + +#endif diff --git a/libxsd/include/xsd/config.h.cmake b/libxsd/include/xsd/config.h.cmake new file mode 100644 index 0000000..7506675 --- /dev/null +++ b/libxsd/include/xsd/config.h.cmake @@ -0,0 +1,14 @@ +#ifndef XSD_CONFIG_H +#define XSD_CONFIG_H + +#cmakedefine XSD_WITH_BOOST +#cmakedefine XSD_WITH_AEB +#cmakedefine WITH_MALLOC + +#ifdef XSD_WITH_BOOST +# define SHARED_PTR boost::shared_ptr +#elif defined(XSD_WITH_AEB) +# define SHARED_PTR aeb::shared_ptr +#endif + +#endif diff --git a/libxsd/include/xsd/parser/document.h b/libxsd/include/xsd/parser/document.h new file mode 100644 index 0000000..68b84c5 --- /dev/null +++ b/libxsd/include/xsd/parser/document.h @@ -0,0 +1,26 @@ +#ifndef XSD_PARSER_DOC_H +#define XSD_PARSER_DOC_H +#include +namespace xsd +{ + + namespace parser + { + + + class Document + { + public: + Document(ParserBase &p,const char *root) : m_depth(0) , m_root_parser(p),m_name(root) {}; + virtual ~Document() {}; + + virtual void startElement(std::string &ns,std::string &name,std::string tp){}; + protected: + ParserBase &m_root_parser; + std::size_t m_depth; + std::string m_name; /* Root name of the document */ + }; + + } +} +#endif diff --git a/libxsd/include/xsd/parser/elements.h b/libxsd/include/xsd/parser/elements.h new file mode 100644 index 0000000..6a422ea --- /dev/null +++ b/libxsd/include/xsd/parser/elements.h @@ -0,0 +1,76 @@ +#ifndef XSD_PARSER_ELEMENTS_H +#define XSD_PARSER_ELEMENTS_H +#include +namespace xsd +{ + namespace parser { +#if 0 + /** + * \brief This class must be used for optional Elements + * It's a way to check is they are present or not. + * + */ + class Optional + { + public: + Optional() :m_present(false) {}; + virtual Set() = 0; + bool present() {return m_present;}; + protected: + bool m_present; + }; +#endif + /** + * \brief Abstract class to implement the parser + * + */ + class ParserBase + { + public: + ParserBase() {}; + + virtual void pre() {}; + virtual void post() {}; + + virtual void preInternal() {}; + virtual void postInternal() {}; + + virtual void preImpl() {preInternal();}; + virtual void postImpl() {postInternal();}; + + // + virtual void startAnyElement(const std::string &ns , const std::string &name) {}; + virtual void endAnyElement(const std::string &ns,const std::string &name) {}; + virtual void anyAttribute(const std::string &ns,const std::string &name,const std::string &val) {}; + + // post functions + virtual void post(std::string &) {std::cout<<"Should not behere\n";}; + virtual void post(xsd::decimal &) {std::cout<<"Should not behere\n";}; + virtual void post(float &) {std::cout<<"Should not behere\n";}; + virtual void post(double &) {std::cout<<"Should not behere\n";}; + virtual void post(int &) {}; + virtual void post(short &) {}; + + // They should nnot be here + // Implementation function automatically generated +#if 0 + virtual bool startElementImpl(const std::string &ns,const std::string &name,const std::string &type) {return false;}; + virtual bool endElementImpl(const std::string &ns,const std::string &name) {return false;}; + //virtual bool CharactersImpl(const std::string &ns){return false;}; + virtual bool AttributeImpl(const std::string &ns,const std::string &name,const std::string &val) {}; +#endif + // Function coded once + virtual void _startElement(const std::string &ns,const std::string &name,const std::string &type) = 0; + virtual void _endElement(const std::string &ns,const std::string &name) = 0; + virtual void _Characters(const std::string &) = 0; + virtual void _Attribute(const std::string &ns,const std::string &name,const std::string &value) = 0; + + virtual const std::string &dynamicType() {static std::string s="base";return s;}; + }; + + } + + +} + +#endif diff --git a/libxsd/include/xsd/parser/expat/elements.h b/libxsd/include/xsd/parser/expat/elements.h new file mode 100644 index 0000000..c3cf000 --- /dev/null +++ b/libxsd/include/xsd/parser/expat/elements.h @@ -0,0 +1,91 @@ +#ifndef XSD_PARSER_EXPAT_H +#define XSD_PARSER_EXPAT_H + +#include + #include + #include + + +namespace xsd { + namespace parser { + namespace expat { + + struct parser_auto_ptr + { + ~parser_auto_ptr() + { + if (m_parser!= 0) + { + XML_ParserFree(m_parser); + } + }; + parser_auto_ptr(XML_Parser p = 0) :m_parser(p) {}; + + parser_auto_ptr& operator =(XML_Parser p) + { + if(m_parser != 0) XML_ParserFree(m_parser); + m_parser = p; + return *this; + } + public: + operator XML_Parser() + { + return m_parser; + }; + private: + XML_Parser m_parser; + }; + + /** + * \brief First try to parse an xml document + * I do not yet have all the information. + * + * \author EBERSOLD Andre + * \date 11/09/09 + */ + class Document : public xsd::parser::Document { + public: + /** + * \brief default constructor, see ParseBase + * \param root, is the root element we want to parse + * \param root_element_name is the name of the root element + */ + Document( ParserBase &root,const char *root_element_name) : xsd::parser::Document(root,root_element_name) {}; + /* What do I realy need */ + ~Document() { }; + bool parse(std::string filename); + /** + * + */ + bool parse(std::istream &is); + protected: + void split_name(const XML_Char *s,const char *&ns,size_t &ns_s, const char *&name,size_t &name_s); + /* For expact we need static functions .... */ + + static void XMLCALL startElement_glb(void *, const XML_Char *,const XML_Char **attr); + static void XMLCALL endElement_glb(void *,const XML_Char *name); + static void XMLCALL characters_glb(void *d,const XML_Char *ns,int dt); + + static void XMLCALL startNamespace_glb(void *, const XML_Char *prefix,const XML_Char *uri); + static void XMLCALL endNamespace_glb(void *, const XML_Char *prefix); + /* + * + */ + void parser_init(); + /** + * + * + */ + void parser_clear(); + + void startElement(const XML_Char *name,const XML_Char **attr); + void endElement(const XML_Char *name); + void Characters(const XML_Char *name,size_t sz); + void Attribute(const std::string &ns,const std::string &name,const std::string &val); + protected: + XML_Parser m_parser; + }; + } + } +} +#endif diff --git a/libxsd/include/xsd/parser/parser.h b/libxsd/include/xsd/parser/parser.h new file mode 100644 index 0000000..1f22b60 --- /dev/null +++ b/libxsd/include/xsd/parser/parser.h @@ -0,0 +1,152 @@ +#ifndef XSD_PARSER_PARSER_H +#define XSD_PARSER_PARSER_H +#include +#include + +#include + +namespace xsd +{ + namespace parser + { + class EmptyElement : public xsd::parser::ParserBase + { + public: + EmptyElement() :m_str(""){}; + virtual ~EmptyElement() {}; + + virtual void preImpl() {m_str.clear(); }; + + virtual void postImpl() {}; + // Any Elements + // + virtual void startAnyElement(const std::string &ns , const std::string &name) { + std::cout<<"EmptyElement::startAny: "<preInternal();}; + virtual void preInternal() {m_str.clear();}; + virtual bool _CharactersImpl(const std::string &c) { m_str+=c;return true;}; + virtual void _Characters(const std::string &c); + virtual void _Attribute(const std::string &ns,const std::string &name,const std::string &val); + + + }; + + /** + * \brief Complex Elements have choice, sequence, extension... + * This is probably the most complicated case + * + * + * \author EBERSOLD Andre + * \date + * \param + * + */ + class ComplexElement : public virtual ::xsd::parser::EmptyElement + { + public: + ComplexElement() : ::xsd::parser::EmptyElement() {}; + virtual ~ComplexElement() {}; + + virtual void preImpl() ; + + virtual void postImpl(); + + virtual void _startElement(const std::string &ns,const std::string &name,const std::string &type) ; + virtual void _endElement(const std::string &ns,const std::string &name) ; + + virtual void _Attribute(const std::string &ns,const std::string &name,const std::string &val); + virtual void _Characters(const std::string &c); + protected: + struct State { + public: + State() : m_any(0),m_depth(0),m_parser(0),m_data(0) { +#ifdef DEBUG + std::cout<<"State::State"< m_context; + //static std::vector m_context; + std::vector m_context; + }; + } +} + + +#endif diff --git a/libxsd/include/xsd/xmlschema.h b/libxsd/include/xsd/xmlschema.h new file mode 100644 index 0000000..2cfa629 --- /dev/null +++ b/libxsd/include/xsd/xmlschema.h @@ -0,0 +1,61 @@ +#ifndef XML_SCHEMA_H__ +#define XML_SCHEMA_H__ + +#include +#include +#include + +#include +#ifdef XSD_WITH_BOOST +#include +#elif defined (XSD_WITH_AEB) +#include +#endif + + +namespace xsd { +namespace schema { + + template + struct element_traits { + typedef T element_type; +#ifdef XSD_WITH_BOOST + typedef typename boost::shared_ptr element_sptr; +#elif defined(XSD_WITH_AEB) + typedef typename aeb::shared_ptr element_sptr; +#else + typedef typename aeb::shared_ptr element_sptr; +#endif + typedef typename std::vector element_sequence; + }; + + template + struct attribute ; + + template + std::ostream &operator << (std::ostream &os,const attribute &a); + + template + struct attribute { + typedef typename element_traits::element_type t_type; + typedef typename element_traits::element_sptr t_sptr; + public: + attribute() : m_present(false) {} ; + attribute(const attribute &a) : m_present(a.m_present) {}; + attribute(const t_sptr &a) : m_present(a->m_present){}; + attribute(const T &a) : m_present(true) , m_content(new T(a)) {}; + attribute & operator =(const attribute &a) {}; + attribute & operator =(const T &a) { }; + + friend std::ostream &operator << (std::ostream &os,const attribute &a); + + protected: + t_sptr m_content; + bool m_present; + }; + + +}; +}; + +#endif diff --git a/libxsd/include/xsd/xsd.h b/libxsd/include/xsd/xsd.h new file mode 100644 index 0000000..bfa3023 --- /dev/null +++ b/libxsd/include/xsd/xsd.h @@ -0,0 +1,83 @@ +#ifndef XSD_H +#define XSD_H + +#include +#include +#include + +#include +#ifdef XSD_WITH_BOOST +#include +#elif defined (XSD_WITH_AEB) +#include +#endif + +namespace xsd { + typedef unsigned long PositiveInteger; + typedef ::std::string string; + typedef long decimal; + typedef bool boolean; + typedef std::vector base64_binary; + typedef ::std::string QName; + typedef ::std::string IDREF; + + + template + struct element_traits { + typedef T element_type; +#ifdef XSD_WITH_BOOST + typedef typename boost::shared_ptr element_sptr; +#elif defined(XSD_WITH_AEB) + typedef typename aeb::shared_ptr element_sptr; +#else + typedef typename aeb::shared_ptr element_sptr; +#endif + typedef typename std::vector element_sequence; + }; + + template + struct element { + typedef typename element_traits::element_type t_type; + typedef typename element_traits::element_sptr t_sptr; + public: + }; + + template + struct element { + typedef typename element_traits::element_type t_type; + typedef typename element_traits::element_sptr t_sptr; + element(const t_sptr &s,const char *n) : m_content(s) ,m_name(n){}; + friend std::ostream & operator <<(std::ostream &os,const element &e) + { + os<<"<:"<serialize_attributes(os); + os<<">"; + os<<*(e.m_content); + os<<""; + }; + t_sptr m_content; + const char *m_name; + }; + + template + struct element { + typedef typename element_traits::element_type t_type; + typedef typename element_traits::element_sptr t_sptr; + element(const t_sptr &s,const char *n) : m_content(s) ,m_name(n){}; + friend std::ostream & operator <<(std::ostream &os,const element &e) + { + os<<"<"<serialize_attributes(os); + os<<">"; + os<<*(e.m_content); + os<<"<"<"; + }; + t_sptr m_content; + const char *m_name; + }; + +} +#include +#include + +#endif diff --git a/libxsd/src/CMakeLists.txt b/libxsd/src/CMakeLists.txt new file mode 100644 index 0000000..424330b --- /dev/null +++ b/libxsd/src/CMakeLists.txt @@ -0,0 +1,65 @@ +PROJECT(libxsd) + +INCLUDE_DIRECTORIES(${libxsd_SOURCE_DIR}/../include) +INCLUDE_DIRECTORIES(/usr/local/include) + +FIND_PACKAGE(EXPAT REQUIRED) +INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR}) +ADD_LIBRARY(libxsd STATIC elements.cpp parser.cpp document_expat.cpp) +EXPORT(TARGETS libxsd FILE libxsdLibraries.cmake) + +ADD_LIBRARY(xsdd STATIC elements.cpp parser.cpp document_expat.cpp) +SET_TARGET_PROPERTIES(xsdd + PROPERTIES + CLEAN_DIRECT_OUTPUT 1 + COMPILE_FLAGS "-DDEBUG -DPARSER_DEBUG=1" + ) +# +# Install stuff +# + +INSTALL(TARGETS libxsd + EXPORT libxsd + ARCHIVE + DESTINATION lib + COMPONENT Libraries) +INSTALL(EXPORT libxsd DESTINATION lib) + +INSTALL(TARGETS xsdd + EXPORT xsdd + ARCHIVE + DESTINATION lib + COMPONENT Libraries) +INSTALL(EXPORT xsdd DESTINATION lib) + +INSTALL(FILES + ${libxsd_SOURCE_DIR}/document_expat.cpp + ${libxsd_SOURCE_DIR}/elements.cpp + ${libxsd_SOURCE_DIR}/parser.cpp + DESTINATION lib/src + COMPONENT Headers + ) +INSTALL(FILES + ${libxsd_SOURCE_DIR}/../include/xsd/xsd.h + DESTINATION include/xsd + COMPONENT Headers + ) +INSTALL(FILES + ${libxsd_SOURCE_DIR}/../include/xsd/parser/parser.h + ${libxsd_SOURCE_DIR}/../include/xsd/parser/elements.h + ${libxsd_SOURCE_DIR}/../include/xsd/parser/document.h + ${libxsd_SOURCE_DIR}/../include/xsd/parser/xml-schema.h + DESTINATION include/xsd/parser + COMPONENT Headers + ) +INSTALL(FILES + ${libxsd_SOURCE_DIR}/../include/xsd/parser/expat/elements.h + DESTINATION include/xsd/parser/expat + COMPONENT Headers + ) + +INSTALL(FILES + ${libxsd_SOURCE_DIR}/../include/xmlSerialize.h + DESTINATION include/ + COMPONENT Headers + ) diff --git a/libxsd/src/document_expat.cpp b/libxsd/src/document_expat.cpp new file mode 100644 index 0000000..763ea4d --- /dev/null +++ b/libxsd/src/document_expat.cpp @@ -0,0 +1,175 @@ + +#include +#include +#include +#include +#include + +namespace xsd +{ + namespace parser + { + + namespace expat + { + + /** + * Funny fact to parse a xml entity.... + */ + bool Document::parse(std::istream &is) + { + char buf[16384]; + parser_auto_ptr parser = XML_ParserCreateNS(0,XML_Char(' ')); + m_parser = parser; + parser_init(); + do + { + is.read(buf,sizeof(buf)); + if (is.bad() || (is.fail() && !is.eof())) + { + break; /* End of parsing */ + } + if (XML_Parse ( m_parser,buf,is.gcount(),is.eof()) == XML_STATUS_ERROR) + { + break; + } + } while (! is.eof()); + parser_clear(); + } + + void Document::parser_init() + { + XML_SetUserData(m_parser,this); + XML_SetStartElementHandler(m_parser,startElement_glb); + XML_SetEndElementHandler(m_parser,endElement_glb); + XML_SetCharacterDataHandler(m_parser,characters_glb); + /** + * XML_SetNamespaveDecHandler(m_parser,start,end); + */ + XML_SetNamespaceDeclHandler(m_parser,startNamespace_glb,endNamespace_glb); + } + + void Document::parser_clear() + { + XML_SetUserData(m_parser,0); + XML_SetStartElementHandler(m_parser,0); + XML_SetEndElementHandler(m_parser,0); + XML_SetNamespaceDeclHandler(m_parser,0,0); + } + + void Document::startElement_glb(void *d,const XML_Char *ns, const XML_Char **attr) + { + Document &doc = (*reinterpret_cast(d)); + doc.startElement(ns,attr); + } + + void Document::endElement_glb(void *d,const XML_Char *ns) + { + Document &doc = (*reinterpret_cast(d)); + doc.endElement(ns); + } + + void Document::characters_glb(void *d,const XML_Char *ns,int ds) + { + Document &doc = (*reinterpret_cast(d)); + doc.Characters(ns,ds); + } + + void Document::split_name(const XML_Char *s,const char *&ns,size_t &ns_s, + const char *&name,size_t &name_s) + { + const char *p = std::strchr(s,' '); + ns=s; + if (p) + { + ns_s=p-s; + name=p+1; + } else + { + ns_s =0; + name=s; + } + name_s = strlen(name); + + } + /** + * Well first see how it works. Right now, I do not really now + * But it's important for soap. + * + */ + void Document::startNamespace_glb(void *d,const XML_Char *prefix, const XML_Char *uri) + { + Document &doc = (*reinterpret_cast(d)); + } + void Document::endNamespace_glb(void *d,const XML_Char *prefix) + { + Document &doc = (*reinterpret_cast(d)); + } + + /* Ok, call the parser objects with the given events ... */ + void Document::startElement(const XML_Char *name,const XML_Char **attr) + { + const char *ns; + const char *nm; + size_t ns_s,nm_s; + + split_name(name,ns,ns_s,nm,nm_s); + + if (m_depth++ > 0 ) + { + /* under root */ + m_root_parser._startElement(std::string(ns,ns_s),std::string(nm,nm_s),std::string("")); +#ifdef DEBUG +std::cout<<"\n\t**** Document after having called _startElement *****\n"; +#endif + } else + { +#ifdef DEBUG + std::cout<<"Start of "< 0) + { + m_root_parser._endElement(std::string(ns,ns_s),std::string(nm,nm_s)); + } else + { + /* end root element */ + m_root_parser.postImpl(); + } + } + void Document::Characters(const XML_Char *name,size_t sz) + { + m_root_parser._Characters(std::string(name,sz)); + } + void Document::Attribute(const std::string &ns,const std::string &n,const std::string &val) + { + m_root_parser._Attribute(ns,n,val); + } + } /* end ns expat */ + } /* end ns parser */ +} diff --git a/libxsd/src/elements.cpp b/libxsd/src/elements.cpp new file mode 100644 index 0000000..b914e7d --- /dev/null +++ b/libxsd/src/elements.cpp @@ -0,0 +1,5 @@ +#include +#include + + + diff --git a/libxsd/src/parser.cpp b/libxsd/src/parser.cpp new file mode 100644 index 0000000..41dc9bc --- /dev/null +++ b/libxsd/src/parser.cpp @@ -0,0 +1,286 @@ +#include +#include +#include +#include +#include + +//#define PARSER_DEBUG 1 +namespace xsd { + namespace parser { + +//std::vector ComplexElement::m_context; + + void EmptyElement::_Attribute(const std::string &ns,const std::string &name,const std::string &val) + { + if( !this->AttributeImpl(ns,name,val) ) + { + std::cout<<"Any attribute "<m_start : "<_startElement(ns,name,type); + } else { +#ifdef PARSER_DEBUG + std::cout<<"CplxE::_startElement no parser staked (s.parser=NULL): "<startAnyElement(ns,name); + /* Element not recogized by us*/ + } else + { +#ifdef PARSER_DEBUG + std::cout<<"\tcplx _start called startElementImpl with ctx size="<preImpl(); + /* Need to call pre */ +#ifdef PARSER_DEBUG + std::cout<<"\tcplx _start Need to call pre- : "< 0) { + // Indirect +#if PARSER_DEBUG + std::cout<postImpl(); + if (!endElementImpl(ns,name)) { +#ifdef PARSER_DEBUG + std::cout< 0) + { +#if PARSER_DEBUG + std::cout<postImpl(); + } + + // std::cout<<" endElementImpl "<endAnyElement(ns,name); + } + } + } +#ifdef PARSER_DEBUG + std::cout< 0) + { + State &s(m_context.back()); + if (s.m_any) { + std::cout<<"CplxE::_Attribute Any\n"; + anyAttribute(ns,name,val); + } else if (s.m_parser) { +#ifdef PARSER_DEBUG + std::cout<<"CplxE::_Attribute "<_Attribute(ns,name,val); + } + } else + { +#ifdef PARSER_DEBUG + std::cout<<"CplxE::_Attribute call this-AttributeImpl "<AttributeImpl(ns,name,val); + } +} + +/** + * + * + */ +void ComplexElement::_Characters(const std::string &val) +{ + State &s(m_context.back()); + if (s.m_depth > 0) + { + if (s.m_parser) { +#ifdef PARSER_DEBUG_CHARACTER + std::cout<<"CplxE::_characters"< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/api/main.cpp b/tests/api/main.cpp new file mode 100644 index 0000000..56d14c3 --- /dev/null +++ b/tests/api/main.cpp @@ -0,0 +1,83 @@ +#include +#include +#include + +#include +#include +#include +#include + +using namespace std; + +/** + * + * + */ +class TestP : public wwwtelapicom::p_call_skel +{ + public: + TestP() {}; + virtual void onElchannelname(std::string &v) + { + wwwtelapicom::p_call_skel::onElchannelname(v); + cout<<"Got channel Name:"<ch1bon alorsout"; + std::istringstream iss1(st,std::istringstream::in); + +//wwwtelapicom::p_call_skel call; + TestP call; + wwwtelapicom::p_calldirection_skel calld; + ::xsd::parser::SimpleElement cn,pcn; + wwwtelapicom::call_skel s_call; + + call.channelname_parser(cn); + call.peerchannelname_parser(pcn); + call.direction_parser(calld); + + std::cout<<"Parsing Check"< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/02basic.xsd b/tests/basic/02basic.xsd new file mode 100644 index 0000000..35b9ce5 --- /dev/null +++ b/tests/basic/02basic.xsd @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/03basic.xsd b/tests/basic/03basic.xsd new file mode 100644 index 0000000..2b3d20f --- /dev/null +++ b/tests/basic/03basic.xsd @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/05all.xsd b/tests/basic/05all.xsd new file mode 100644 index 0000000..45ddda3 --- /dev/null +++ b/tests/basic/05all.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + diff --git a/tests/basic/06all.xsd b/tests/basic/06all.xsd new file mode 100644 index 0000000..d868248 --- /dev/null +++ b/tests/basic/06all.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/07all.xsd b/tests/basic/07all.xsd new file mode 100644 index 0000000..c6febc0 --- /dev/null +++ b/tests/basic/07all.xsd @@ -0,0 +1,40 @@ + + + + + + Base structure with an all element. Used by Simple to test extension of all + + + + + + + Base structure with an all element. Used by Simple to test extension of all + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/08all.xsd b/tests/basic/08all.xsd new file mode 100644 index 0000000..0c27e8c --- /dev/null +++ b/tests/basic/08all.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/10group.xsd b/tests/basic/10group.xsd new file mode 100644 index 0000000..a363ebe --- /dev/null +++ b/tests/basic/10group.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/11group.xsd b/tests/basic/11group.xsd new file mode 100644 index 0000000..f9049df --- /dev/null +++ b/tests/basic/11group.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/12group.xsd b/tests/basic/12group.xsd new file mode 100644 index 0000000..739f729 --- /dev/null +++ b/tests/basic/12group.xsd @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/20restriction.xsd b/tests/basic/20restriction.xsd new file mode 100644 index 0000000..4c96e7f --- /dev/null +++ b/tests/basic/20restriction.xsd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/21restriction.xsd b/tests/basic/21restriction.xsd new file mode 100644 index 0000000..5fc7b4b --- /dev/null +++ b/tests/basic/21restriction.xsd @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/22restriction.xsd b/tests/basic/22restriction.xsd new file mode 100644 index 0000000..43ed01e --- /dev/null +++ b/tests/basic/22restriction.xsd @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/30extension.xsd b/tests/basic/30extension.xsd new file mode 100644 index 0000000..9c03c02 --- /dev/null +++ b/tests/basic/30extension.xsd @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/31extension.xsd b/tests/basic/31extension.xsd new file mode 100644 index 0000000..41ebfc1 --- /dev/null +++ b/tests/basic/31extension.xsd @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/40list.xsd b/tests/basic/40list.xsd new file mode 100644 index 0000000..c2c148b --- /dev/null +++ b/tests/basic/40list.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/41list.xsd b/tests/basic/41list.xsd new file mode 100644 index 0000000..5141f42 --- /dev/null +++ b/tests/basic/41list.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/50union.xsd b/tests/basic/50union.xsd new file mode 100644 index 0000000..22e8fea --- /dev/null +++ b/tests/basic/50union.xsd @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/60abstract.xsd b/tests/basic/60abstract.xsd new file mode 100644 index 0000000..8e10dbd --- /dev/null +++ b/tests/basic/60abstract.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/70sequence.xsd b/tests/basic/70sequence.xsd new file mode 100644 index 0000000..c208b74 --- /dev/null +++ b/tests/basic/70sequence.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/71sequence.xsd b/tests/basic/71sequence.xsd new file mode 100644 index 0000000..b489e69 --- /dev/null +++ b/tests/basic/71sequence.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/80choice.xsd b/tests/basic/80choice.xsd new file mode 100644 index 0000000..9cdb519 --- /dev/null +++ b/tests/basic/80choice.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/81choice.xsd b/tests/basic/81choice.xsd new file mode 100644 index 0000000..24b40c3 --- /dev/null +++ b/tests/basic/81choice.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/90attribute.xsd b/tests/basic/90attribute.xsd new file mode 100644 index 0000000..e246635 --- /dev/null +++ b/tests/basic/90attribute.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + diff --git a/tests/basic/91attribute.xsd b/tests/basic/91attribute.xsd new file mode 100644 index 0000000..86769fb --- /dev/null +++ b/tests/basic/91attribute.xsd @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/92attribute.xsd b/tests/basic/92attribute.xsd new file mode 100644 index 0000000..6756227 --- /dev/null +++ b/tests/basic/92attribute.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/93attribute.xsd b/tests/basic/93attribute.xsd new file mode 100644 index 0000000..6756227 --- /dev/null +++ b/tests/basic/93attribute.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/95attributeGroup.xsd b/tests/basic/95attributeGroup.xsd new file mode 100644 index 0000000..be2c6df --- /dev/null +++ b/tests/basic/95attributeGroup.xsd @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + All elements have an ID + + + + + + + + + + + + diff --git a/tests/basic/96attributeGroup.xsd b/tests/basic/96attributeGroup.xsd new file mode 100644 index 0000000..9324b10 --- /dev/null +++ b/tests/basic/96attributeGroup.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + All elements have an ID + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/CMakeLists.txt b/tests/basic/CMakeLists.txt new file mode 100644 index 0000000..5bc843a --- /dev/null +++ b/tests/basic/CMakeLists.txt @@ -0,0 +1,386 @@ +PROJECT(tbasic) + +ENABLE_TESTING() + +INCLUDE(${rules_SOURCE_DIR}/saxon.cmake) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +FIND_LIBRARY(CPPUNIT_LIB cppunit PATHS /usr/local/lib /usr/lib /Users/aeb/External/lib/ /Users/aeb/External/bin/) +FIND_LIBRARY(DL_LIB ltdl "/lib:/usr/local/lib:/usr/lib") + +FIND_PACKAGE(CPPUNIT REQUIRED) +INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIRS}) + +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES(".") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}") +INCLUDE_DIRECTORIES("/usr/local/include") + +SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +#SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") +SET(XMI "${tbasic_SOURCE_DIR}/basic.xsd") +SET(BASIC01 "${tbasic_SOURCE_DIR}/01basic.xsd") +SET(BASIC02 "${tbasic_SOURCE_DIR}/02basic.xsd") +SET(BASIC03 "${tbasic_SOURCE_DIR}/03basic.xsd") + +MACRO(TESTCASE) + PARSE_ARGUMENTS(THIS_TC + "SOURCE;XSD;ROOT-ELEMENT;XSDDIRS;NAMESPACE;DEPENDS;OUTPUT;TEST" + "DEBUG" + ${ARGN} + ) + + IF (NOT "${THIS_TC_XSD}" STREQUAL "") + XSD2CPP( + SOURCE ${tbasic_SOURCE_DIR}/${THIS_TC_XSD}.xsd + OUTPUT ${THIS_TC_XSD} + ROOT-ELEMENT simple + XSDDIRS "./../\;../../data-models/\;" + ) + ENDIF (NOT "${THIS_TC_XSD}" STREQUAL "") + IF (NOT "${THIS_TC_TEST}" STREQUAL "") + ADD_TEST(${THIS_TC_TEST} ${THIS_TC_OUTPUT}) + ENDIF (NOT "${THIS_TC_TEST}" STREQUAL "") + ADD_EXECUTABLE(${THIS_TC_OUTPUT} + ${THIS_TC_SOURCE} + ${CMAKE_CURRENT_BINARY_DIR}/parser/${THIS_TC_XSD}.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_${THIS_TC_XSD}.cpp + # TestCaseSimpleType.cpp + main_test.cpp + ) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT} + libxsd + ${EXPAT_LIB} + ${CPPUNIT_LIB} + ) + # DEbug versiob + ADD_EXECUTABLE(${THIS_TC_OUTPUT}d + ${THIS_TC_SOURCE} + ${CMAKE_CURRENT_BINARY_DIR}/parser/${THIS_TC_XSD}.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_${THIS_TC_XSD}.cpp + main_test.cpp + ) + SET_TARGET_PROPERTIES(${THIS_TC_OUTPUT}d + PROPERTIES + CLEAN_DIRECT_OUTPUT 1 + COMPILE_FLAGS "-DDEBUG -DPARSER_DEBUG=1" + ) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT}d xsdd + ${CPPUNIT_LIB} + ${EXPAT_LIB}) + + IF(${DL_LIB}) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT} ${DL_LIB}) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT}d ${DL_LIB}) + ENDIF(${DL_LIB}) + +ENDMACRO(TESTCASE) + +XSD2CPP( + SOURCE ${XMI} + OUTPUT basic + XSDDIRS "./../\;../../data-models/\;" + ) + +XSD2CPP( + SOURCE ${BASIC02} + OUTPUT 02basic + ROOT-ELEMENT main + XSDDIRS "./../\;../../data-models/\;" + ) + +XSD2CPP( + SOURCE ${BASIC03} + OUTPUT 03basic + ROOT-ELEMENT simple + XSDDIRS "./../\;../../data-models/\;" + ) +#XSD2CPP( +# SOURCE ${tbasic_SOURCE_DIR}/50union.xsd +# OUTPUT 50union +# ROOT-ELEMENT simple +# XSDDIRS "./../\;../../data-models/\;" +# ) + +#XSD2CPP( +# SOURCE ${tbasic_SOURCE_DIR}/60abstract.xsd +# OUTPUT 60abstract +# ROOT-ELEMENT actions +# XSDDIRS "./../\;../../data-models/\;" +# ) + + +# +# +# +ADD_EXECUTABLE(tbasic + ${CMAKE_CURRENT_BINARY_DIR}/parser/basic.cpp + main.cpp ) +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +ADD_EXECUTABLE(tparser_basic + ${CMAKE_CURRENT_BINARY_DIR}/parser/basic.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_basic.cpp + main_parser.cpp + ) +TARGET_LINK_LIBRARIES(tparser_basic libxsd ${EXPAT_LIB}) +# +# Test Stuff +# +IF(NOT ${CPPUNIT_LIB}) + + TESTCASE( + XSD 20restriction + OUTPUT restriction20 + SOURCE + TestCaseSimpleTypeRestriction.cpp + TEST TestSimpleTypeRestriction + ) + + TESTCASE( + XSD 21restriction + OUTPUT restriction21 + SOURCE + TestCaseSimpleContentRestriction.cpp + TEST TestSimpleContentRestriction + ) + + TESTCASE( + XSD 22restriction + OUTPUT restriction22 + SOURCE + TEST 22ComplexContentRestriction + ) + + TESTCASE( + XSD 30extension + OUTPUT extension30 + SOURCE + TEST 30SimpleContentExtension + ) + TESTCASE( + XSD 31extension + OUTPUT extension31 + SOURCE + TestCaseSimpleContentExtensionAttribute.cpp + TEST 31SimpleContentExtensionAttribute + ) + + # TESTCASE( + # XSD 60abstract + # OUTPUT abstract + # SOURCE + # TEST TestAbstract + # ) + TESTCASE( + XSD 40list + OUTPUT list40 + SOURCE + TestCaseList.cpp + TEST TestList + ) + + TESTCASE( + XSD 41list + OUTPUT list41 + SOURCE + TEST ListSimpleType + ) + + TESTCASE( + XSD 50union + OUTPUT union50 + SOURCE + TestCase50union.cpp + TEST TestCaseUnions + ) + TESTCASE( + XSD 10group + OUTPUT group10 + SOURCE + TestCaseGroup.cpp + TEST GroupSequence + ) + TESTCASE( + XSD 11group + OUTPUT group11 + SOURCE + TEST GroupChoice + ) + TESTCASE( + XSD 12group + OUTPUT group12 + SOURCE + TEST GroupAnoElement + ) + + TESTCASE( + XSD 01basic + OUTPUT TestCaseSimpleType + SOURCE + TestCaseSimpleType.cpp + TEST TestSimpleType + ) + + TESTCASE( + XSD 03basic + OUTPUT tcrecursion + SOURCE + TestCaseRecurse.cpp + TEST TestRecursion + ) + + TESTCASE( + XSD 70sequence + OUTPUT sequence70 + SOURCE + TestCaseComplexTypeSequence.cpp + TEST TestComplexTypeSequence + ) + TESTCASE( + XSD 80choice + OUTPUT choice80 + SOURCE + TestCaseComplexTypeChoice.cpp + TEST TestComplexTypeChoice + ) + + TESTCASE( + XSD 81choice + OUTPUT choice81 + SOURCE + TestCaseCplxTpChoiceSequence.cpp + TEST TestCplxTpChoiceSequence + ) + + TESTCASE( + XSD 90attribute + OUTPUT attribute90 + SOURCE + TestCaseAttribute.cpp + TEST TestComplexTypeAttribute + ) + +TESTCASE( + XSD 91attribute + OUTPUT attribute91 + SOURCE + TestCaseAttributeRestricted.cpp + TEST 91ComplexTypeAttributeRestricted + ) + + TESTCASE( + XSD 92attribute + OUTPUT attribute92 + SOURCE + TestCaseAttributeOptional.cpp + TEST 92ComplexTypeAttributeOptional + ) + + TESTCASE( + XSD 95attributeGroup + OUTPUT attributeGroup95 + SOURCE + TestCaseAttributeGroup.cpp + TEST 95AttributeGroup + ) + + TESTCASE( + XSD 96attributeGroup + OUTPUT attributeGroup96 + SOURCE + TestCaseAnoAttributeGroup.cpp + TEST 96AttributeGroup + ) + + TESTCASE( + XSD 05all + OUTPUT all05 + SOURCE + TestCaseAllBase.cpp + TEST 05AllBase + ) + + TESTCASE( + XSD 06all + OUTPUT all06 + SOURCE + TestCaseAllRef.cpp + TEST 06AllRef + ) + + ADD_EXECUTABLE(sr_basic01 + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_01basic.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/01basic.cpp + TestCaseSimpleSerialize.cpp + main_test.cpp + ) + TARGET_LINK_LIBRARIES(sr_basic01 + libxsd + ${EXPAT_LIB} + ${CPPUNIT_LIB} + ) + ADD_EXECUTABLE(sr_basic02 + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_02basic.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/02basic.cpp + main_test.cpp + ) + + MESSAGE("Found Library ${DL_LIB}") + IF(NOT ${DL_LIB}) + TARGET_LINK_LIBRARIES(sr_basic01 ${DL_LIB}) + TARGET_LINK_LIBRARIES(sr_basic02 ${DL_LIB}) + ENDIF(NOT ${DL_LIB}) + + + TARGET_LINK_LIBRARIES(sr_basic02 + libxsd + ${EXPAT_LIB} + ${CPPUNIT_LIB} + ) + ADD_TEST(SimpleTypeSerialize sr_basic01 Hello) + ADD_TEST(SimpleTypeNativeTypes sr_basic02 Hello) + ADD_TEST(SimpleTypeRef tparser_basic Hello) + ADD_TEST(SimpleTypeEnumaration tparser_basic Hello) + ADD_TEST(SimpleTypeExtesion tparser_basic Hello) + ADD_TEST(ComplexType tparser_basic Hello) + ADD_TEST(ComplexTypeNamespace tparser_basic Hello) + # ADD_TEST(ComplexRecursion tc_03basic Hello) +ELSE(NOT ${CPPUNIT_LIB}) + MESSAGE("I do not have cppunit library ${CPPUNIT_LIB} ") +ENDIF(NOT ${CPPUNIT_LIB}) + + +# +# Install stuff +# +INSTALL(TARGETS tbasic tparser_basic + ARCHIVE + RUNTIME DESTINATION examples/basic + COMPONENT Examples) + +INSTALL(FILES + ${tbasic_SOURCE_DIR}/basic.xsd + DESTINATION examples/basic + COMPONENT Examples + ) +INSTALL(FILES + ${tbasic_SOURCE_DIR}/main.cpp + DESTINATION examples/basic + COMPONENT Examples + ) +INSTALL(FILES + ${tbasic_BINARY_DIR}/parser/basic.cpp + ${tbasic_BINARY_DIR}/parser/p_basic.cpp + DESTINATION examples/basic/parser + COMPONENT Examples + ) +INSTALL(FILES + ${tbasic_BINARY_DIR}/include/basic.h + ${tbasic_BINARY_DIR}/include/p_basic.h + DESTINATION examples/basic/include + COMPONENT Examples + ) diff --git a/tests/basic/TCTmpl.cpp b/tests/basic/TCTmpl.cpp new file mode 100644 index 0000000..ea9ccbc --- /dev/null +++ b/tests/basic/TCTmpl.cpp @@ -0,0 +1,50 @@ +#include +#include <%CLASS%.h> +#include +CPPUNIT_TEST_SUITE_REGISTRATION( %CLASS%); + +class TestResult : public Simple_skel +{ + public: +}; + +void %CLASS%::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void %CLASS%::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "< +#include +#include +#include +#include + +using namespace %NAMESPACE%; + +class %CLASS% : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( %CLASS% ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCase50union.cpp b/tests/basic/TestCase50union.cpp new file mode 100644 index 0000000..58e5a2c --- /dev/null +++ b/tests/basic/TestCase50union.cpp @@ -0,0 +1,143 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCase50union); + +class TestResult : public Simple_skel +{ + public: + std::string version() {std::string s= me_attr_version.content();return s;}; +}; + +void TestCase50union::setUp() +{ + m_root.union_stype_parser(m_ust); + m_root.union_mixed_parser(m_umixed); + m_root.union_members_parser(m_umember); + // m_root.version_parser(m_version); + m_root.name_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCase50union::test_stype() +{ + TestResult s; + char r[128]; + std::string test="andre10"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + //CPPUNIT_ASSERT(s.version()=="1.0"); + std::cout<<" s.union_stype="<content().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->content() == "andre"); +#endif +} + +void TestCase50union::test_mixed() +{ + TestResult s; + std::string test="andre10"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + //CPPUNIT_ASSERT(s.version()=="1.0"); + std::cout<<" v="<andre11"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" v="<andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.nbr()==12); +} + +/** + * + */ +void TestCase50union::parse_03() +{ + TestResult s; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.2"); +} + +/** + * + */ +void TestCaseSimpleType::parse_file_01int() +{ + basic_type::Simple_skel s; + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "01basic_01int.xml"; + iss1.open(filename.c_str(),std::ifstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s._int()==454); +} +#endif diff --git a/tests/basic/TestCase50union.h b/tests/basic/TestCase50union.h new file mode 100644 index 0000000..b00008a --- /dev/null +++ b/tests/basic/TestCase50union.h @@ -0,0 +1,34 @@ +#ifndef TESTCASE_50UNION_H +#define TESTCASE_50UNION_H + +#include +#include +#include +#include +#include + +using namespace tcunion50; + +class TestCase50union : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCase50union ); + CPPUNIT_TEST(test_stype); + CPPUNIT_TEST(test_mixed); + CPPUNIT_TEST(test_member); + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_name,m_version; + p_UnionSimpleTypes_skel m_ust; + p_UnionMixed_skel m_umixed; + p_UnionMemberType_skel m_umember; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void test_stype(); + void test_mixed(); + void test_member(); +}; +#endif diff --git a/tests/basic/TestCaseAllBase.cpp b/tests/basic/TestCaseAllBase.cpp new file mode 100644 index 0000000..8f9cc5b --- /dev/null +++ b/tests/basic/TestCaseAllBase.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAllBase); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAllBase::setUp() +{ + m_root.elem1_parser(m_elem1); + m_root.elem2_parser(m_elem2); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAllBase::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="e1e2"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "< +#include +#include +#include +#include + +using namespace all05; + +class TestCaseAllBase : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAllBase ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + ::xsd::parser::SimpleElement m_elem1,m_elem2; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCaseAllExtension.cpp b/tests/basic/TestCaseAllExtension.cpp new file mode 100644 index 0000000..f97c1d1 --- /dev/null +++ b/tests/basic/TestCaseAllExtension.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAllExtension); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAllExtension::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAllExtension::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "< +#include +#include +#include +#include + +using namespace all07; + +class TestCaseAllExtension : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAllExtension ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCaseAllGroup.cpp b/tests/basic/TestCaseAllGroup.cpp new file mode 100644 index 0000000..e0a8157 --- /dev/null +++ b/tests/basic/TestCaseAllGroup.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAllGroup); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAllGroup::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAllGroup::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "< +#include +#include +#include +#include + +using namespace all08; + +class TestCaseAllGroup : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAllGroup ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCaseAllRef.cpp b/tests/basic/TestCaseAllRef.cpp new file mode 100644 index 0000000..6391cfc --- /dev/null +++ b/tests/basic/TestCaseAllRef.cpp @@ -0,0 +1,35 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAllRef); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAllRef::setUp() +{ + m_root.elem1_parser(m_elem1); + m_root.elem2_parser(m_elem2); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAllRef::parse_bike() +{ + TestResult s; + std::string test="smalle2"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "< +#include +#include +#include +#include + +using namespace all06; + +class TestCaseAllRef : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAllRef ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + ::xsd::parser::SimpleElement m_elem1,m_elem2; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCaseAnoAttributeGroup.cpp b/tests/basic/TestCaseAnoAttributeGroup.cpp new file mode 100644 index 0000000..c63090f --- /dev/null +++ b/tests/basic/TestCaseAnoAttributeGroup.cpp @@ -0,0 +1,84 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAnoAttributeGroup); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAnoAttributeGroup::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAnoAttributeGroup::parse_id() +{ + TestResult s; + std::string test=""; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "<"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); +#if 0 + std::cout<<" "<"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); +#if 0 + std::cout<<" "< +#include +#include +#include +#include + +using namespace attributeGroup96; + +class TestCaseAnoAttributeGroup : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAnoAttributeGroup ); + CPPUNIT_TEST(parse_id); + CPPUNIT_TEST(parse_link); + CPPUNIT_TEST(parse_ano); + CPPUNIT_TEST(serialize_id); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_id(); + void parse_link(); + void parse_ano(); + void serialize_id(); +}; +#endif diff --git a/tests/basic/TestCaseAttribute.cpp b/tests/basic/TestCaseAttribute.cpp new file mode 100644 index 0000000..326d2f0 --- /dev/null +++ b/tests/basic/TestCaseAttribute.cpp @@ -0,0 +1,80 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAttribute); + +typedef double joe; +namespace xsd { +namespace schema { + +template<> +std::ostream & +operator << (std::ostream &os, const xsd::schema::attribute &c) +{ + if (c.m_present) + { + os<<" toto=\""<<*c.m_content<<"\""; + } + return os; +} + +template<> +std::ostream & +operator << (std::ostream &os, const xsd::schema::attribute &c) +{ + if (c.m_present) + { + os<<" joe=\""<<*c.m_content<<"\""; + } + return os; +} + + +} +} + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAttribute::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAttribute::parse_bike() +{ + TestResult s; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + // CPPUNIT_ASSERT(s.content().content()=="small"); +} + + + +void TestCaseAttribute::test_template() +{ + typedef xsd::schema::attribute m_attr; + typedef xsd::schema::attribute m_joe; + m_attr toto; + m_attr dix(10); + m_joe jo(1); + std::cout<<"("< +#include +#include +#include +#include +#include + +using namespace attribute90; + +class TestCaseAttribute : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAttribute ); + CPPUNIT_TEST(parse_bike); + CPPUNIT_TEST(test_template); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); + void test_template(); +}; +#endif diff --git a/tests/basic/TestCaseAttributeGroup.cpp b/tests/basic/TestCaseAttributeGroup.cpp new file mode 100644 index 0000000..2309ac0 --- /dev/null +++ b/tests/basic/TestCaseAttributeGroup.cpp @@ -0,0 +1,37 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAttributeGroup); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAttributeGroup::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAttributeGroup::parse_group() +{ + TestResult s; + std::string test=""; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" id="< +#include +#include +#include +#include + +using namespace attributeGroup95; + +class TestCaseAttributeGroup : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAttributeGroup ); + CPPUNIT_TEST(parse_group); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_group(); +}; +#endif diff --git a/tests/basic/TestCaseAttributeOptional.cpp b/tests/basic/TestCaseAttributeOptional.cpp new file mode 100644 index 0000000..e07b0c4 --- /dev/null +++ b/tests/basic/TestCaseAttributeOptional.cpp @@ -0,0 +1,60 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAttributeOptional); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAttributeOptional::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAttributeOptional::parse_link() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test=""; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); +#if 0 + std::cout<<" "<"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "< +#include +#include +#include +#include + +using namespace attribute92; + +class TestCaseAttributeOptional : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAttributeOptional ); + CPPUNIT_TEST(parse_link); + CPPUNIT_TEST(parse_versiono); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_link(); + void parse_versiono(); +}; +#endif diff --git a/tests/basic/TestCaseAttributeRestricted.cpp b/tests/basic/TestCaseAttributeRestricted.cpp new file mode 100644 index 0000000..97a25c4 --- /dev/null +++ b/tests/basic/TestCaseAttributeRestricted.cpp @@ -0,0 +1,83 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseAttributeRestricted); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseAttributeRestricted::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseAttributeRestricted::parse_A() +{ + A_skel s; + std::string test=""; + std::istringstream iss1(test,std::istringstream::in); + std::ostringstream result(std::ostringstream::out); + xsd::parser::expat::Document doc(m_A_root,"a"); + doc.parse(iss1); + m_A_root.post(s); + std::cout<<"(x="<small"; + std::istringstream iss1(test,std::istringstream::in); + std::ostringstream result(std::ostringstream::out); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<"(x="<small"; + std::istringstream iss1(test,std::istringstream::in); + std::ostringstream result(std::ostringstream::out); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<"(x="<small"; + std::istringstream iss1(test,std::istringstream::in); + std::ostringstream result(std::ostringstream::out); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<"(x="< +#include +#include +#include +#include + +using namespace attribute91; + +class TestCaseAttributeRestricted : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseAttributeRestricted ); + CPPUNIT_TEST(parse_A); + CPPUNIT_TEST(parse_bike); + CPPUNIT_TEST(parse_simple_x); + CPPUNIT_TEST(parse_simple_y); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + p_A_skel m_A_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); + void parse_A(); + void parse_simple_x(); + void parse_simple_y(); +}; +#endif diff --git a/tests/basic/TestCaseComplexContentRestriction.cpp b/tests/basic/TestCaseComplexContentRestriction.cpp new file mode 100644 index 0000000..b353c37 --- /dev/null +++ b/tests/basic/TestCaseComplexContentRestriction.cpp @@ -0,0 +1,109 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseComplexContentRestriction); + +class TestResult : public basic_type::Simple_skel +{ + public: + std::string &version() {return me_attr_version.m_content;}; + long nbr() {return *me_nbr;} +}; + +void TestCaseComplexContentRestriction::setUp() +{ + m_root.name_parser(m_name); + m_root.greeting_parser(m_greeting); + m_root.nbr_parser(m_nbr); + m_root._int_parser(m__int); + m_root._double_parser(m__double); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseComplexContentRestriction::parse_01() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(1==1); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.greeting()=="Marc"); + CPPUNIT_ASSERT(s.nbr()==12); + //CPPUNIT_ASSERT( s.name()[0]!= NULL); + sprintf(r,"Why is name=%s\n",s.name()[0]->content().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->content() == "andre"); +} + +/** + * + */ +void TestCaseComplexContentRestriction::parse_02() +{ + TestResult s; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.nbr()==12); +} + +/** + * must return failed because 1.0 != 1.2 + */ +void TestCaseComplexContentRestriction::parse_03() +{ + TestResult s; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.2"); +} + +/** + * + */ +void TestCaseComplexContentRestriction::parse_04() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT( ( s.name().size() == 1)); + sprintf(r,"Why is name=%s\n",s.name()[0]->content().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->content() == "andre"); +} +/** + * + */ +void TestCaseComplexContentRestriction::parse_file_01int() +{ + basic_type::Simple_skel s; +#if 0 + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "01basic_01int.xml"; + iss1.open(filename.c_str(),std::ifstream::in); +#else + std::string test="andreMarc12<_int>454"; + std::istringstream iss1(test,std::istringstream::in); +#endif + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s._int()==454); +} diff --git a/tests/basic/TestCaseComplexContentRestriction.h b/tests/basic/TestCaseComplexContentRestriction.h new file mode 100644 index 0000000..8317874 --- /dev/null +++ b/tests/basic/TestCaseComplexContentRestriction.h @@ -0,0 +1,36 @@ +#ifndef TESTCASE_SIMPLETYPE_H +#define TESTCASE_SIMPLETYPE_H + +#include +#include +#include +#include +#include + + +class TestCaseComplexContentRestriction : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseComplexContentRestriction ); + CPPUNIT_TEST(parse_01); + CPPUNIT_TEST(parse_02); + CPPUNIT_TEST_FAIL(parse_03); + CPPUNIT_TEST(parse_04); + CPPUNIT_TEST(parse_file_01int); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_nbr,m_greeting,m__int,m__double,m__string; + basic_type::p_SimpleChaine_skel m_name; + basic_type::p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_01(); + void parse_02(); + void parse_03(); + void parse_04(); + void parse_file_01int(); +}; +#endif diff --git a/tests/basic/TestCaseComplexTypeChoice.cpp b/tests/basic/TestCaseComplexTypeChoice.cpp new file mode 100644 index 0000000..46381cf --- /dev/null +++ b/tests/basic/TestCaseComplexTypeChoice.cpp @@ -0,0 +1,80 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseComplexTypeChoice); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseComplexTypeChoice::setUp() +{ + m_root.elem1_parser(m_elem1); + m_root.logic_parser(m_logic); + m_root.prive_parser(m_prive); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseComplexTypeChoice::parse_elem1() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + simple_elem_type e(new Simple_skel(s)); + std::cout<<" "<1"); +} + +/** + * + */ +void TestCaseComplexTypeChoice::parse_prive() +{ + TestResult s; + std::ostringstream result(std::ostringstream::out); + std::string test="2011"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + simple_elem_type e(new Simple_skel(s)); + std::cout<<" "<2011")); +// CPPUNIT_ASSERT(s.content().content()=="small"); +} + +/** + * + */ + +/** + * + */ diff --git a/tests/basic/TestCaseComplexTypeChoice.h b/tests/basic/TestCaseComplexTypeChoice.h new file mode 100644 index 0000000..1900983 --- /dev/null +++ b/tests/basic/TestCaseComplexTypeChoice.h @@ -0,0 +1,34 @@ +#ifndef TESTCASE_SIMPLETYPE_H +#define TESTCASE_SIMPLETYPE_H + +#include +#include +#include +#include +#include + +using namespace choice80; + +class TestCaseComplexTypeChoice : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseComplexTypeChoice ); + CPPUNIT_TEST(parse_elem1); + CPPUNIT_TEST(parse_logic); + CPPUNIT_TEST(parse_prive); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_logic; + p_elem1_skel m_elem1; + p_Simple_skel::p_prive_skel m_prive; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_elem1(); + void parse_logic(); + void parse_prive(); +}; +#endif diff --git a/tests/basic/TestCaseComplexTypeSequence.cpp b/tests/basic/TestCaseComplexTypeSequence.cpp new file mode 100644 index 0000000..4b06602 --- /dev/null +++ b/tests/basic/TestCaseComplexTypeSequence.cpp @@ -0,0 +1,37 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseComplexTypeSequence); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseComplexTypeSequence::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseComplexTypeSequence::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); +// std::cout<<" "< +#include +#include +#include +#include + +using namespace sequence70; + +class TestCaseComplexTypeSequence : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseComplexTypeSequence ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCaseCplxTpChoiceSequence.cpp b/tests/basic/TestCaseCplxTpChoiceSequence.cpp new file mode 100644 index 0000000..c0d5dec --- /dev/null +++ b/tests/basic/TestCaseCplxTpChoiceSequence.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseCplxTpChoiceSequence); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseCplxTpChoiceSequence::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseCplxTpChoiceSequence::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + //std::cout<<" "< +#include +#include +#include +#include + +using namespace choice81; + +class TestCaseCplxTpChoiceSequence : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseCplxTpChoiceSequence ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCaseGroup.cpp b/tests/basic/TestCaseGroup.cpp new file mode 100644 index 0000000..a2da53e --- /dev/null +++ b/tests/basic/TestCaseGroup.cpp @@ -0,0 +1,101 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseGroup); + +class TestResult : public Simple_skel +{ + public: + std::string version() {std::string s = me_attr_version.content();return s;}; +}; + +void TestCaseGroup::setUp() +{ + // m_root.union_stype_parser(m_ust); + // m_root.version_parser(m_version); + m_root.elem1_parser(m_elem1); + m_root.elem2_parser(m_elem2); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseGroup::ParseVersion() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="andresophie"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="2.0"); +#if 0 + CPPUNIT_ASSERT(s.greeting()=="Marc"); + CPPUNIT_ASSERT(s.nbr()==12); + CPPUNIT_ASSERT( ( s.name())[0]!= NULL); + sprintf(r,"Why is name=%s\n",s.name()[0]->content().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->content() == "andre"); +#endif +} + + +/** + * + */ +void TestCaseGroup::ParseElem1() +{ + TestResult s; + std::string test="andresophie"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.elem1()=="andre"); +} +/** + * + */ +void TestCaseGroup::ParseElem2() +{ + TestResult s; + std::string test="andresophie"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.elem2()=="sophie"); +} + +#if 0 +/** + * + */ +void TestCaseGroup::parse_03() +{ + TestResult s; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.2"); +} + +/** + * + */ +void TestCaseSimpleType::parse_file_01int() +{ + basic_type::Simple_skel s; + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "01basic_01int.xml"; + iss1.open(filename.c_str(),std::ifstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s._int()==454); +} +#endif diff --git a/tests/basic/TestCaseGroup.h b/tests/basic/TestCaseGroup.h new file mode 100644 index 0000000..032316c --- /dev/null +++ b/tests/basic/TestCaseGroup.h @@ -0,0 +1,31 @@ +#ifndef TESTCASE_50UNION_H +#define TESTCASE_50UNION_H + +#include +#include +#include +#include +#include + +using namespace group10; + +class TestCaseGroup : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseGroup ); + CPPUNIT_TEST(ParseVersion); + CPPUNIT_TEST(ParseElem1); + CPPUNIT_TEST(ParseElem2); + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_elem1,m_elem2,m_version; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void ParseVersion(); + void ParseElem1(); + void ParseElem2(); +}; +#endif diff --git a/tests/basic/TestCaseList.cpp b/tests/basic/TestCaseList.cpp new file mode 100644 index 0000000..e26e18e --- /dev/null +++ b/tests/basic/TestCaseList.cpp @@ -0,0 +1,39 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseList); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseList::setUp() +{ + m_root.bikes_parser(m_bikes); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseList::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="bike1 bike2 bike3 bike4"; + std::istringstream iss1(test,std::istringstream::in); + std::ostringstream result(std::ostringstream::out); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + simple_elem_type e(new Simple_skel(s)); + std::cout<<" ("< +#include +#include +#include +#include + +using namespace list40; + +class TestCaseList : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseList ); + CPPUNIT_TEST(parse_bike); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Bikes_skel m_bikes; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); +}; +#endif diff --git a/tests/basic/TestCaseRecurse.cpp b/tests/basic/TestCaseRecurse.cpp new file mode 100644 index 0000000..32793c1 --- /dev/null +++ b/tests/basic/TestCaseRecurse.cpp @@ -0,0 +1,129 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseRecurse); + +class TestResult : public basic03::XMI_skel +{ + public: + std::string version() {std::string s= me_attr_version.content();return s;}; +}; + +void TestCaseRecurse::setUp() +{ + m_root.XmiFirmware_parser(m_XmiFirmware); + m_root.name_parser(m_XMI_content); + m_root.nbr_parser(m_nbr); + m_XmiFirmware.PkgURL_parser(m_PkgURL); + m_XmiFirmware.XmiFirmware_parser(m_XmiFirmware); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseRecurse::parse_01() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"XMI"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.name()[0]->attr_name()=="andre"); + CPPUNIT_ASSERT(s.nbr()==12); +#if 0 + CPPUNIT_ASSERT( ( s.name())[0]!= NULL); + CPPUNIT_ASSERT( ( s.name())[0]->version()=="first test"); + sprintf(r,"Why is c=%d and s.name.link %d vers=%s",c,s.name()[0]->link(),s.name()[0]->version().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->link() == c); +#endif +} + +/** + * + */ +void TestCaseRecurse::parse_02() +{ + TestResult s; + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "03basic_recurse_01.xml"; + iss1.open(filename.c_str(),std::ifstream::in); + xsd::parser::expat::Document doc(m_root,"XMI"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.XmiFirmware()[0]->attr_version()=="12"); +} + +/** + * + */ +void TestCaseRecurse::parse_03() +{ + TestResult s; + std::string test="andre12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"XMI"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.2"); + CPPUNIT_ASSERT(s.name()[0]->attr_name()!="andre"); + CPPUNIT_ASSERT(s.name()[1]->attr_name()=="marc"); +} + +/** + * + */ +void TestCaseRecurse::parse_04() +{ + TestResult s; + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "03basic_recurse_02.xml"; + iss1.open(filename.c_str(),std::ifstream::in); + xsd::parser::expat::Document doc(m_root,"XMI"); + doc.parse(iss1); + m_root.post(s); + std::cout<attr_version()=="22"); + CPPUNIT_ASSERT(s.XmiFirmware()[0]->XmiFirmware()[0]->attr_version()=="22"); +} + +/** + * + */ +void TestCaseRecurse::parse_05() +{ + TestResult s; + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "03basic_recurse_02.xml"; + iss1.open(filename.c_str(),std::ifstream::in); + xsd::parser::expat::Document doc(m_root,"XMI"); + doc.parse(iss1); + m_root.post(s); + std::cout<attr_version()=="12"); +// CPPUNIT_ASSERT(s.XmiFirmware()[0]->XmiFirmware()[0]->version()=="12"); +} + +/** + * + */ +#if 0 +void TestCaseRecurse::parse_file_01int() +{ + basic_type::Simple_skel s; + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "01basic_01int.xml"; + iss1.open(filename.c_str(),std::ifstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s._int()==454); +} +#endif diff --git a/tests/basic/TestCaseRecurse.h b/tests/basic/TestCaseRecurse.h new file mode 100644 index 0000000..8c7bf49 --- /dev/null +++ b/tests/basic/TestCaseRecurse.h @@ -0,0 +1,39 @@ +#ifndef TESTCASE_SIMPLETYPE_H +#define TESTCASE_SIMPLETYPE_H + +#include +#include +#include +#include +#include + + +class TestCaseRecurse : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseRecurse ); +#if 0 + CPPUNIT_TEST(parse_01); + CPPUNIT_TEST(parse_02); + CPPUNIT_TEST(parse_03); +#endif + CPPUNIT_TEST(parse_04); + CPPUNIT_TEST(parse_05); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_name,m_nbr,m_PkgURL; + basic03::p_XMIfirmwareLocation_skel m_XmiFirmware; + basic03::p_XMI_skel m_root; + basic03::p_XMI_content_skel m_XMI_content; + std::string m_xmlsourcepath; + protected: + void parse_01(); + void parse_02(); + void parse_03(); + void parse_04(); + void parse_05(); +}; +#endif diff --git a/tests/basic/TestCaseSimpleContentExtensionAttribute.cpp b/tests/basic/TestCaseSimpleContentExtensionAttribute.cpp new file mode 100644 index 0000000..0368ec7 --- /dev/null +++ b/tests/basic/TestCaseSimpleContentExtensionAttribute.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseSimpleContentExtensionAttribute); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseSimpleContentExtensionAttribute::setUp() +{ + m_root.type_parser(m_checksum); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseSimpleContentExtensionAttribute::parse_type() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "< +#include +#include +#include +#include + +using namespace extension31; + +class TestCaseSimpleContentExtensionAttribute : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseSimpleContentExtensionAttribute ); + CPPUNIT_TEST(parse_type); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_ChecksumType_skel m_checksum; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_type(); +}; +#endif diff --git a/tests/basic/TestCaseSimpleContentRestriction.cpp b/tests/basic/TestCaseSimpleContentRestriction.cpp new file mode 100644 index 0000000..3e840cb --- /dev/null +++ b/tests/basic/TestCaseSimpleContentRestriction.cpp @@ -0,0 +1,74 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseSimpleContentRestriction); + +class TestResult : public Simple_skel +{ + public: +}; + +void TestCaseSimpleContentRestriction::setUp() +{ + //m_root.bike_parser(m_name); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseSimpleContentRestriction::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" "<small"); +} diff --git a/tests/basic/TestCaseSimpleContentRestriction.h b/tests/basic/TestCaseSimpleContentRestriction.h new file mode 100644 index 0000000..20a6fbf --- /dev/null +++ b/tests/basic/TestCaseSimpleContentRestriction.h @@ -0,0 +1,34 @@ +#ifndef TESTCASE_SIMPLETYPE_H +#define TESTCASE_SIMPLETYPE_H + +#include +#include +#include +#include +#include + +using namespace restriction21; + +class TestCaseSimpleContentRestriction : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseSimpleContentRestriction ); + CPPUNIT_TEST(parse_bike); + CPPUNIT_TEST(serialize_bike); + CPPUNIT_TEST(serialize_simple); + CPPUNIT_TEST(serialize_simple_element); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Bikes_skel m_bike; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); + void serialize_bike(); + void serialize_simple(); + void serialize_simple_element(); +}; +#endif diff --git a/tests/basic/TestCaseSimpleSerialize.cpp b/tests/basic/TestCaseSimpleSerialize.cpp new file mode 100644 index 0000000..6d61801 --- /dev/null +++ b/tests/basic/TestCaseSimpleSerialize.cpp @@ -0,0 +1,107 @@ +#include +#include + +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseSimpleSerialize); + +class TestResult : public basic_type::Simple_skel +{ + public: + std::string version() {std::string s = me_attr_version.content();return s;}; + long nbr() {return *me_nbr;} +}; + +void TestCaseSimpleSerialize::setUp() +{ + m_root.name_parser(m_name); + m_root.greeting_parser(m_greeting); + m_root.nbr_parser(m_nbr); +} + +/** + * + */ +void TestCaseSimpleSerialize::serialize_simple() +{ + char r[1024]; + std::string v; + long n=412; + signed char c=(signed char)30; + std::string test="Marc412andre"; + std::ostringstream result(std::ostringstream::out); + CPPUNIT_ASSERT( 1 == 1); + basic_type::Simple_skel *s = new basic_type::Simple_skel(); + basic_type::simple_sptr ss(s); + struct basic_type::simple_elem_type es(ss); + basic_type::SimpleChaine_skel name; + v="2.0"; + basic_type::Simple_skel::version_attr_type_ ats = v; + basic_type::Simple_skel::version_optional vo(ats); + s->attr_version(vo); + CPPUNIT_ASSERT( s->attr_version() == "2.0"); + v="1.5"; + name="andre"; + result<andre\n result=\n%s\n",result.str().c_str()); + CPPUNIT_ASSERT_MESSAGE( r ,"andre" == result.str()); + s->name(name); + basic_type::Simple_skel::name_sequence names; + names = s->name(); + CPPUNIT_ASSERT(names.size() ==1); + v="Marc"; + s->greeting(v); + s->nbr(n); + result.seekp(0); //rewind + result< ns; + typedef xsd::element nsf; + std::string v("2.0"); + basic_type::Simple_skel::version_attr_type_ ats = v; + basic_type::Simple_skel::version_optional vo(ats); + s->attr_version(vo); + + ns es(ss,"sim"); + nsf esf(ss,"sim"); + + std::cout<andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.nbr()==12); +} + +/** + * + */ +/* +void TestCaseSimpleSerialize::parse_03() +{ + TestResult s; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.2"); +} +*/ diff --git a/tests/basic/TestCaseSimpleSerialize.h b/tests/basic/TestCaseSimpleSerialize.h new file mode 100644 index 0000000..9120125 --- /dev/null +++ b/tests/basic/TestCaseSimpleSerialize.h @@ -0,0 +1,30 @@ +#ifndef TESTCASE_SIMPLESERIALIZE_H +#define TESTCASE_SIMPLESERILAIZE_H + +#include +#include +#include +#include +#include + + +class TestCaseSimpleSerialize : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseSimpleSerialize ); + CPPUNIT_TEST( serialize_simple); + CPPUNIT_TEST( serialize_template); + CPPUNIT_TEST( serialize_simple_and_name); + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_nbr,m_greeting; + basic_type::p_SimpleChaine_skel m_name; + basic_type::p_Simple_skel m_root; + protected: + void serialize_simple(); + void serialize_template(); + void serialize_simple_and_name(); +}; +#endif diff --git a/tests/basic/TestCaseSimpleType.cpp b/tests/basic/TestCaseSimpleType.cpp new file mode 100644 index 0000000..42b8d63 --- /dev/null +++ b/tests/basic/TestCaseSimpleType.cpp @@ -0,0 +1,109 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseSimpleType); + +class TestResult : public basic_type::Simple_skel +{ + public: + std::string version() {std::string s=me_attr_version.content(); return s;}; + long nbr() {return *me_nbr;} +}; + +void TestCaseSimpleType::setUp() +{ + m_root.name_parser(m_name); + m_root.greeting_parser(m_greeting); + m_root.nbr_parser(m_nbr); + m_root._int_parser(m__int); + m_root._double_parser(m__double); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseSimpleType::parse_01() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(1==1); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.greeting()=="Marc"); + CPPUNIT_ASSERT(s.nbr()==12); + //CPPUNIT_ASSERT( s.name()[0]!= NULL); + sprintf(r,"Why is name=%s\n",s.name()[0]->content().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->content() == "andre"); +} + +/** + * + */ +void TestCaseSimpleType::parse_02() +{ + TestResult s; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.0"); + CPPUNIT_ASSERT(s.nbr()==12); +} + +/** + * must return failed because 1.0 != 1.2 + */ +void TestCaseSimpleType::parse_03() +{ + TestResult s; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.2"); +} + +/** + * + */ +void TestCaseSimpleType::parse_04() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT( ( s.name().size() == 1)); + sprintf(r,"Why is name=%s\n",s.name()[0]->content().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->content() == "andre"); +} +/** + * + */ +void TestCaseSimpleType::parse_file_01int() +{ + basic_type::Simple_skel s; +#if 0 + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "01basic_01int.xml"; + iss1.open(filename.c_str(),std::ifstream::in); +#else + std::string test="andreMarc12<_int>454"; + std::istringstream iss1(test,std::istringstream::in); +#endif + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s._int()==454); +} diff --git a/tests/basic/TestCaseSimpleType.h b/tests/basic/TestCaseSimpleType.h new file mode 100644 index 0000000..350c202 --- /dev/null +++ b/tests/basic/TestCaseSimpleType.h @@ -0,0 +1,36 @@ +#ifndef TESTCASE_SIMPLETYPE_H +#define TESTCASE_SIMPLETYPE_H + +#include +#include +#include +#include +#include + + +class TestCaseSimpleType : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseSimpleType ); + CPPUNIT_TEST(parse_01); + CPPUNIT_TEST(parse_02); + CPPUNIT_TEST_FAIL(parse_03); + CPPUNIT_TEST(parse_04); + CPPUNIT_TEST(parse_file_01int); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_nbr,m_greeting,m__int,m__double,m__string; + basic_type::p_SimpleChaine_skel m_name; + basic_type::p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_01(); + void parse_02(); + void parse_03(); + void parse_04(); + void parse_file_01int(); +}; +#endif diff --git a/tests/basic/TestCaseSimpleTypeRestriction.cpp b/tests/basic/TestCaseSimpleTypeRestriction.cpp new file mode 100644 index 0000000..ff8d17a --- /dev/null +++ b/tests/basic/TestCaseSimpleTypeRestriction.cpp @@ -0,0 +1,81 @@ +#include +#include +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseSimpleTypeRestriction); + +class TestResult : public Simple_skel +{ + public: + std::string version() {std::string s = me_attr_version.content();return s;}; +}; + +void TestCaseSimpleTypeRestriction::setUp() +{ + m_root.bike_parser(m_bike); + m_root.limit_parser(m_limit); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseSimpleTypeRestriction::parse_bike() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="small12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.bike().content()=="small"); +} + +/** + * + */ +void TestCaseSimpleTypeRestriction::parse_version() +{ + TestResult s; + std::string test="medium110"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.0"); +} + +/** + * must return failed because 1.0 != 1.2 + */ +void TestCaseSimpleTypeRestriction::parse_03() +{ + TestResult s; + std::string test="Marc110"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + std::cout<<" Got Version=("<Marc0"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.limit().content()==0); +} +/** + * + */ diff --git a/tests/basic/TestCaseSimpleTypeRestriction.h b/tests/basic/TestCaseSimpleTypeRestriction.h new file mode 100644 index 0000000..983d245 --- /dev/null +++ b/tests/basic/TestCaseSimpleTypeRestriction.h @@ -0,0 +1,35 @@ +#ifndef TESTCASE_SIMPLETYPE_H +#define TESTCASE_SIMPLETYPE_H + +#include +#include +#include +#include +#include + +using namespace restriction20; + +class TestCaseSimpleTypeRestriction : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseSimpleTypeRestriction ); + CPPUNIT_TEST(parse_bike); + CPPUNIT_TEST(parse_version); + CPPUNIT_TEST_FAIL(parse_03); + CPPUNIT_TEST(parse_limit); + + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + p_Bikes_skel m_bike; + p_LimitDecimal_skel m_limit; + p_Simple_skel m_root; + std::string m_xmlsourcepath; + protected: + void parse_bike(); + void parse_version(); + void parse_03(); + void parse_limit(); +}; +#endif diff --git a/tests/basic/basic.xsd b/tests/basic/basic.xsd new file mode 100644 index 0000000..56267b0 --- /dev/null +++ b/tests/basic/basic.xsd @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/basic/main.cpp b/tests/basic/main.cpp new file mode 100644 index 0000000..e4c1484 --- /dev/null +++ b/tests/basic/main.cpp @@ -0,0 +1,19 @@ +#include + +#include +#include +#include +#include + +using namespace std; + +int main(int argc,char **argv) +{ + hello::XMI_skel xmi; + printf("Hello owrd\n"); + + // xmi.label=string("dede"); + cout< + +#include +#include +#include +#include +#include + +#include +#include + +using namespace std; +using namespace hello; + +class myContent : public virtual p_XMI_content_skel +{ + public: + myContent() {std::cout<<"create myContent\n";}; + ~myContent() {}; + protected: + // virtual void onAttramount(const std::string &v) {std::cout<<" Got ammount : "<Marc"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(p,"XMI"); + doc.parse(iss1); +} + + +int test2(xsd::parser::ParserBase &p) +{ + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(p,"XMI"); + doc.parse(iss1); +} + +int test3(xsd::parser::ParserBase &p) +{ + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(p,"XMI"); + doc.parse(iss1); +} + + +int main(int argc,char **argv) +{ + XMI_skel xmi; + //p_XMI_skel pxmi; + myXMI pxmi; + //p_XMI_content_skel pxmi_c; + myContent pxmi_c; + + xsd::parser::SimpleElement s,msg,nbr,taille; + pxmi.name_parser(pxmi_c); + pxmi.greeting_parser(msg); + pxmi.nbr_parser(nbr); + + printf("\n\tHello world ... test 1\n\n"); + test1(pxmi); + pxmi.post(xmi); + printf("\n\tHello world ... test 2\n\n"); + test2(pxmi); + pxmi.post(xmi); + std::cout<<"Result="< + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/basic/newtc.sh b/tests/basic/newtc.sh new file mode 100755 index 0000000..30d7c27 --- /dev/null +++ b/tests/basic/newtc.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +TMP=TCTmpl +NEWTMPL=${1} +NAMESPACE=$2 +SRC=$3 + +cat ${TMP}.h | sed -e "s/%CLASS%/${NEWTMPL}/" -e "s/%NAMESPACE%/${NAMESPACE}/" -e "s/%SRC%/${SRC}/" > ${NEWTMPL}.h +cat ${TMP}.cpp | sed -e "s/%CLASS%/${NEWTMPL}/" -e "s/%NAMESPACE%/${NAMESPACE}/" -e "s/%SRC%/${SRC}/" > ${NEWTMPL}.cpp + + diff --git a/tests/basic/xmlsources/01basic_01int.xml b/tests/basic/xmlsources/01basic_01int.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_01int.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_02long.xml b/tests/basic/xmlsources/01basic_02long.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_02long.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_03double.xml b/tests/basic/xmlsources/01basic_03double.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_03double.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_04string.xml b/tests/basic/xmlsources/01basic_04string.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_04string.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_05byte.xml b/tests/basic/xmlsources/01basic_05byte.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_05byte.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_07short.xml b/tests/basic/xmlsources/01basic_07short.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_07short.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_10date.xml b/tests/basic/xmlsources/01basic_10date.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_10date.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_11dateTime.xml b/tests/basic/xmlsources/01basic_11dateTime.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_11dateTime.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_12duration.xml b/tests/basic/xmlsources/01basic_12duration.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_12duration.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_13gYear.xml b/tests/basic/xmlsources/01basic_13gYear.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_13gYear.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_14gYearMonth.xml b/tests/basic/xmlsources/01basic_14gYearMonth.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_14gYearMonth.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_15gMonthDay.xml b/tests/basic/xmlsources/01basic_15gMonthDay.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_15gMonthDay.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_16gMonth.xml b/tests/basic/xmlsources/01basic_16gMonth.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_16gMonth.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_17gDay.xml b/tests/basic/xmlsources/01basic_17gDay.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_17gDay.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_18time.xml b/tests/basic/xmlsources/01basic_18time.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_18time.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_20IDREFS.xml b/tests/basic/xmlsources/01basic_20IDREFS.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_20IDREFS.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_21ENTITIES.xml b/tests/basic/xmlsources/01basic_21ENTITIES.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_21ENTITIES.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_22NMTOKEN.xml b/tests/basic/xmlsources/01basic_22NMTOKEN.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_22NMTOKEN.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_23token.xml b/tests/basic/xmlsources/01basic_23token.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_23token.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_24QName.xml b/tests/basic/xmlsources/01basic_24QName.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_24QName.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_25NCName.xml b/tests/basic/xmlsources/01basic_25NCName.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_25NCName.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_26ID.xml b/tests/basic/xmlsources/01basic_26ID.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_26ID.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/01basic_27IDREF.xml b/tests/basic/xmlsources/01basic_27IDREF.xml new file mode 100644 index 0000000..80ae340 --- /dev/null +++ b/tests/basic/xmlsources/01basic_27IDREF.xml @@ -0,0 +1,7 @@ + + + andre + Marc + 12 + <_int>454 +" diff --git a/tests/basic/xmlsources/03basic_recurse_01.xml b/tests/basic/xmlsources/03basic_recurse_01.xml new file mode 100644 index 0000000..3f72e51 --- /dev/null +++ b/tests/basic/xmlsources/03basic_recurse_01.xml @@ -0,0 +1,6 @@ + + + + http://www.dede.home/test1 + + diff --git a/tests/basic/xmlsources/03basic_recurse_02.xml b/tests/basic/xmlsources/03basic_recurse_02.xml new file mode 100644 index 0000000..ff35708 --- /dev/null +++ b/tests/basic/xmlsources/03basic_recurse_02.xml @@ -0,0 +1,12 @@ + + + + + + http://www.dede.home/test3 + + http://www.dede.home/test2 + + http://www.dede.home/test1 + + diff --git a/tests/cwmp/CMakeLists.txt b/tests/cwmp/CMakeLists.txt new file mode 100644 index 0000000..158716b --- /dev/null +++ b/tests/cwmp/CMakeLists.txt @@ -0,0 +1,147 @@ +PROJECT(cwmp) + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/tr069.cmake) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") + +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") +SET(CWMP "${xml-t_SOURCE_DIR}/../../data-models/cwmp-1-0.xsd") +SET(SOAPENV "${xml-t_SOURCE_DIR}/../../data-models/soap-envelope.xsd") +SET(SOAPENC "${xml-t_SOURCE_DIR}/../../data-models/soap-encoding.xsd") + +IF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/parser/parser.cmake) + #include(${CMAKE_CURRENT_BINARY_DIR}/parser/parser.cmake) + #ADD_LIBRARY(xml_parser STATIC ${XML_PARSER}) +ELSE(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/parser/parser.cmake) +ENDIF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/parser/parser.cmake) + + + + +# +# +# +CWMP2CPP( +SOURCE ${xml-t_SOURCE_DIR}/../../data-models/cwmp/tr-069-1-0-0.xml +OUTPUT tr_069 +XSDDIRS "./../\;../../data-models/\;" +) +ADD_EXECUTABLE(cwmp_tr069 + ${CMAKE_CURRENT_BINARY_DIR}/parser/tr_069.cpp + + ) + +# +# Model parser ... +# +XSD2CPP( +SOURCE ${xml-t_SOURCE_DIR}/../../data-models/cwmp-datamodel-1-0.xsd +OUTPUT cwmp-datamodel-1-0 +DEPS cwmp-deps.xsd +ROOT-ELEMENT "document" +XSDDIRS "./../\;../../data-models/\;" +) + +ADD_EXECUTABLE(cwmp-model + ${CMAKE_CURRENT_BINARY_DIR}/parser/cwmp-datamodel-1-0.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_cwmp-datamodel-1-0.cpp + + ) + +# +# +# +ADD_CUSTOM_COMMAND( + SOURCE ${CWMP} + COMMAND java + ARGS -jar ${SAXON} -s ${CWMP} -xsl:${XSD2CPP} target="release" rootdir="./parser/" + xsddir="./\;/home/aeb/Devs/home/data-models/\;../../data-models/\;./../\;" + incdir="/../include" srcdir="./" + xsddir="./\;./../\;./../../\;./../../data-models/\;" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_cwmp-1-0.cpp + ${CMAKE_CURRENT_BINARY_DIR}/include/p_cwmp-1-0.h + COMMENT "Transform ${CWMP}" + ) + +ADD_CUSTOM_COMMAND( + SOURCE ${SOAPENV} + COMMAND java + ARGS -jar ${SAXON} -s ${SOAPENV} -xsl:${XSD2CPP} target="release" rootdir="./psoap-e/" + incdir="/../include" srcdir="./" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/p_soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/include/p_soap-envelope.h + ${CMAKE_CURRENT_BINARY_DIR}/include/soap-envelope.h + COMMENT "Transform ${SOAPENV}" + ) + +ADD_CUSTOM_COMMAND( + SOURCE ${SOAPENC} + COMMAND java + ARGS -jar ${SAXON} -s ${SOAPENC} -xsl:${XSD2CPP} target="release" rootdir="./psoap-e/" + incdir="/../include" srcdir="./" + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/p_soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-encoding.cpp + COMMENT "Transform ${SOAPENC}" + ) + +#SOURCE ${xml-t_SOURCE_DIR}/../../../data-models/xmi.xsd +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/psoap-e/p_soap-envelope.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-envelope.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/psoap-e/p_soap-encoding.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-encoding.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/p_cwmp-1-0.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/cwmp-1-0.cpp + GENERATED) + +ADD_EXECUTABLE(tcwmp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/p_soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/p_soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_cwmp-1-0.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/cwmp-1-0.cpp + main.cpp ) +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +ADD_EXECUTABLE(tparser_cwmp + main.cpp + ) + +ADD_EXECUTABLE(cwmp_test + main_test.cpp + TCElements.cpp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/psoap-e/soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/cwmp-1-0.cpp + ) +TARGET_LINK_LIBRARIES(cwmp_test + ${CPPUNIT_LIB} + ) + IF(NOT ${DL_LIB}) + TARGET_LINK_LIBRARIES(cwmp_test ${DL_LIB}) + ENDIF(NOT ${DL_LIB}) + +IF(WIN32) +TARGET_LINK_LIBRARIES(tparser_cwmp libxsd ${EXPAT_LIB}) +TARGET_LINK_LIBRARIES(tcwmp libxsd ${EXPAT_LIB}) +ELSE(WIN32) +TARGET_LINK_LIBRARIES(tparser_cwmp libxsd expat) +TARGET_LINK_LIBRARIES(tcwmp libxsd ${EXPAT_LIB}) +ENDIF(WIN32) diff --git a/tests/cwmp/TCElements.cpp b/tests/cwmp/TCElements.cpp new file mode 100644 index 0000000..3300e90 --- /dev/null +++ b/tests/cwmp/TCElements.cpp @@ -0,0 +1,152 @@ +#include + +#include "TCElements.h" + +CPPUNIT_TEST_SUITE_REGISTRATION( TCElements ); + +/** + * + */ +void TCElements::ID() +{ + std::ostringstream result(std::ostringstream::out); + ID_sptr id(new ID_skel()); + std::string s("coucou"); + envelope::mustUnderstand_attr_type mu(true);// mu = true; + (*id)=s; + id->attr_mustUnderstand(mu); + ID_elem_type et(id); + result<coucou"); + CPPUNIT_ASSERT(result.str() == expected); +} + +/** + * + * + */ +void TCElements::HoldRequestsTrue() +{ + std::ostringstream result(std::ostringstream::out); + HoldRequests_sptr hr(new HoldRequests_skel); + envelope::mustUnderstand_attr_type mu(true);// mu = true; + + *hr = true; + hr->attr_mustUnderstand(mu); + //std::cout<<" Res="<<*hr<<" "<true"); +} +/** + * + * + */ +void TCElements::HoldRequestsFalse() +{ + std::ostringstream result(std::ostringstream::out); + HoldRequests_sptr hr(new HoldRequests_skel); + envelope::mustUnderstand_attr_type mu(true);// mu = true; + + hr->attr_mustUnderstand(mu); + *hr = false; + result << HoldRequests_elem_type(hr); + std::cout<<" Res="<false"); +} +/** + * + */ +void TCElements::Fault() +{ + std::ostringstream result(std::ostringstream::out); + std::string fs("dede"); + Fault_sptr fault(new Fault_skel); + FaultCodeType_skel fc; + fc = 400; + fault->FaultCode(fc); + fault->FaultString(fs); + result << Fault_elem_type(fault); + std::cout<<" Res="<400dede"); +} +/** + * + */ +void TCElements::GetRPCMethods() +{ + std::string s1("mA"); + std::ostringstream result(std::ostringstream::out); + GetRPCMethods_sptr grpc(new GetRPCMethods_skel); + result << GetRPCMethods_elem_type(grpc); + //std::cout<<" Res="<"); +} +/** + * + */ +void TCElements::GetRPCMethodsResponse() +{ + std::string at("xsi:string[2]"); + MethodList_skel::string_type s1; + std::ostringstream result(std::ostringstream::out); + GetRPCMethodsResponse_sptr grpc(new GetRPCMethodsResponse_skel); + GetRPCMethodsResponse_skel::MethodList_sptr l(new MethodList_skel); + s1=std::string("andre"); l->string(s1); + s1=std::string("eloise"); l->string(s1); + l->attr_arrayType(at); + grpc->MethodList(l); + result << GetRPCMethodsResponse_elem_type(grpc); + //std::cout<<" Res1="<andreeloise"); +} +/** + * + */ +void TCElements::SetParameterValues() +{ + std::ostringstream result(std::ostringstream::out); + SetParameterValues_sptr grpc(new SetParameterValues_skel); + + SetParameterValues_skel::ParameterList_sptr lst( + new ParameterValueList_skel); + grpc->ParameterList(lst); + + result << SetParameterValues_elem_type(grpc); + std::cout<<" Res1="< +#include +/*vim:et:sw=2:ts=2:bs=2*/ + +int main(int argc,char **argv) +{ + +} diff --git a/tests/cwmp/main_test.cpp b/tests/cwmp/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/cwmp/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/dependencies/01element.xsd b/tests/dependencies/01element.xsd new file mode 100644 index 0000000..47f92de --- /dev/null +++ b/tests/dependencies/01element.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/02element.xsd b/tests/dependencies/02element.xsd new file mode 100644 index 0000000..d6ae80a --- /dev/null +++ b/tests/dependencies/02element.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/03element.xsd b/tests/dependencies/03element.xsd new file mode 100644 index 0000000..26fccd5 --- /dev/null +++ b/tests/dependencies/03element.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/04element.xsd b/tests/dependencies/04element.xsd new file mode 100644 index 0000000..878d6f5 --- /dev/null +++ b/tests/dependencies/04element.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/05element.xsd b/tests/dependencies/05element.xsd new file mode 100644 index 0000000..5f3aceb --- /dev/null +++ b/tests/dependencies/05element.xsd @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/06element.xsd b/tests/dependencies/06element.xsd new file mode 100644 index 0000000..24f65dd --- /dev/null +++ b/tests/dependencies/06element.xsd @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/07element.xsd b/tests/dependencies/07element.xsd new file mode 100644 index 0000000..19179e8 --- /dev/null +++ b/tests/dependencies/07element.xsd @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/08element.xsd b/tests/dependencies/08element.xsd new file mode 100644 index 0000000..332eb2b --- /dev/null +++ b/tests/dependencies/08element.xsd @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/09element.xsd b/tests/dependencies/09element.xsd new file mode 100644 index 0000000..04aeb8f --- /dev/null +++ b/tests/dependencies/09element.xsd @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/dependencies/CMakeLists.txt b/tests/dependencies/CMakeLists.txt new file mode 100644 index 0000000..3c08051 --- /dev/null +++ b/tests/dependencies/CMakeLists.txt @@ -0,0 +1,182 @@ +PROJECT(dependencies) + +ENABLE_TESTING() + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +FIND_LIBRARY(CPPUNIT_LIB cppunit PATHS /usr/local/lib /usr/lib /Users/aeb/External/lib/ /Users/aeb/External/bin/) +FIND_LIBRARY(DL_LIB ltdl "/lib:/usr/local/lib:/usr/lib") + +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES(".") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}") +INCLUDE_DIRECTORIES("/usr/local/include") + +SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +#SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") +SET(XMI "${tbasic_SOURCE_DIR}/basic.xsd") + +MACRO(TESTCASE) + PARSE_ARGUMENTS(THIS_TC + "SOURCE;XSD;ROOT-ELEMENT;XSDDIRS;NAMESPACE;DEPENDS;OUTPUT;TEST;DEPS" + "DEBUG" + ${ARGN} + ) + + IF (NOT "${THIS_TC_ROOT-ELEMENT}" STREQUAL "") + SET(THIS_TC_ROOT-ELEMENT "simple") + ELSE(NOT "${THIS_TC_ROOT-ELEMENT}" STREQUAL "") + ENDIF(NOT "${THIS_TC_ROOT-ELEMENT}" STREQUAL "") + + + IF (NOT "${THIS_TC_XSD}" STREQUAL "") + IF (NOT "${THIS_TC_DEPS}" STREQUAL "") + XSD2CPP( + SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${THIS_TC_XSD}.xsd + OUTPUT ${THIS_TC_XSD} + DEPS ${THIS_TC_DEPS} + ROOT-ELEMENT ${THIS_TC_ROOT-ELEMENT} + XSDDIRS "./../\;../../data-models/\;" + ) + ELSE(NOT "${THIS_TC_DEPS}" STREQUAL "") + XSD2CPP( + SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${THIS_TC_XSD}.xsd + OUTPUT ${THIS_TC_XSD} + ROOT-ELEMENT ${THIS_TC_ROOT-ELEMENT} + XSDDIRS "./../\;../../data-models/\;" + ) + ENDIF(NOT "${THIS_TC_DEPS}" STREQUAL "") + ENDIF (NOT "${THIS_TC_XSD}" STREQUAL "") + + + + IF (NOT "${THIS_TC_TEST}" STREQUAL "") + ADD_TEST(${THIS_TC_TEST} ${THIS_TC_OUTPUT}) + ENDIF (NOT "${THIS_TC_TEST}" STREQUAL "") + ADD_EXECUTABLE(${THIS_TC_OUTPUT} + ${THIS_TC_SOURCE} + ${CMAKE_CURRENT_BINARY_DIR}/parser/${THIS_TC_XSD}.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_${THIS_TC_XSD}.cpp + # ${CMAKE_CURRENT_BINARY_DIR}/parser/p_01basic.cpp + # ${CMAKE_CURRENT_BINARY_DIR}/parser/01basic.cpp + # TestCaseSimpleType.cpp + main_test.cpp + ) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT} + libxsd + ${EXPAT_LIB} + ${CPPUNIT_LIB} + ) + IF (${THIS_TC_DEBUG}) + # DEbug versiob + ADD_EXECUTABLE(${THIS_TC_OUTPUT}d + ${THIS_TC_SOURCE} + main_test.cpp + ) + SET_TARGET_PROPERTIES(${THIS_TC_OUTPUT}d + PROPERTIES + CLEAN_DIRECT_OUTPUT 1 + COMPILE_FLAGS "-DDEBUG -DPARSER_DEBUG=1" + ) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT}d xsdd + ${CPPUNIT_LIB} + ${EXPAT_LIB}) + + ENDIF (${THIS_TC_DEBUG}) + IF(NOT ${DL_LIB}) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT} ${DL_LIB}) + IF (${THIS_TC_DEBUG}) + TARGET_LINK_LIBRARIES(${THIS_TC_OUTPUT}d ${DL_LIB}) + ENDIF (${THIS_TC_DEBUG}) + ENDIF(NOT ${DL_LIB}) + +ENDMACRO(TESTCASE) + +# +# Test Stuff +# +IF(NOT ${CPPUNIT_LIB}) + + TESTCASE( + XSD 01element + OUTPUT element01 + ROOT-ELEMENT simple + DEPS 01element_deps.xml + # SOURCE ${CMAKE_CURRENT_BINARY_DIR}/parser/01element.cpp + # ${CMAKE_CURRENT_BINARY_DIR}/parser/p_01element.cpp + TEST TestSimpleTypeRestriction + ) + + TESTCASE( + XSD 02element + OUTPUT element02 + ROOT-ELEMENT simple + DEPS 02element_deps.xml + TEST ElementChoice + ) + TESTCASE( + XSD 03element + OUTPUT element03 + ROOT-ELEMENT simple + DEPS 03element_deps.xml + TEST ElementSequence + ) + TESTCASE( + XSD 04element + OUTPUT element04 + ROOT-ELEMENT simple + DEPS 04element_deps.xml + TEST ElementAll + ) + TESTCASE( + XSD 05element + OUTPUT element05 + ROOT-ELEMENT simple + DEPS 05element_deps.xml + TEST ElementGroup + ) + + TESTCASE( + XSD 06element + OUTPUT element06 + ROOT-ELEMENT simple + DEPS 06element_deps.xml + TEST ElementRefs + ) + + TESTCASE( + XSD 07element + OUTPUT element07 + ROOT-ELEMENT simple + DEPS 07element_deps.xml + TEST ElementRefs + ) + + TESTCASE( + XSD 08element + OUTPUT element08 + ROOT-ELEMENT simple + DEPS 08element_deps.xml + TEST ElementRefs + ) + TESTCASE( + XSD 09element + OUTPUT element09 + ROOT-ELEMENT simple + DEPS 09element_deps.xml + TEST ElementRefs + ) + + MESSAGE("Found Library ${DL_LIB}") + + +ELSE(NOT ${CPPUNIT_LIB}) + MESSAGE("I do not have cppunit library ${CPPUNIT_LIB} ") +ENDIF(NOT ${CPPUNIT_LIB}) + + +# +# Install stuff +# diff --git a/tests/dependencies/main_test.cpp b/tests/dependencies/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/dependencies/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/ics_notifier/CMakeLists.txt b/tests/ics_notifier/CMakeLists.txt new file mode 100644 index 0000000..df2aae5 --- /dev/null +++ b/tests/ics_notifier/CMakeLists.txt @@ -0,0 +1,151 @@ +PROJECT(ics_notifier) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/wsdl.cmake) + +#SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +#SET(WSDL2 "${CMAKE_CURRENT_SOURCE_DIR}/../../wsdl2.xsl") +#SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") + +SET(MODEL "${xml-t_SOURCE_DIR}/../../data-models/alcatel-lucent/ics70/") + +SET(XMI "${xml-t_SOURCE_DIR}/../../data-models/soap-envelope.xsd") +SET(SOAPENC "${xml-t_SOURCE_DIR}/../../data-models/soap-encoding.xsd") +SET(ICSNS "${xml-t_SOURCE_DIR}/../../data-models/oxo_wsdl/IcsNotifier/NotifierService.xsd") +SET(ICSSF + "${xml-t_SOURCE_DIR}/../../data-models/oxo_wsdl/IcsNotifier/SubscriptionFilter.xsd") +SET(ICSNOTIFIER "${xml-t_SOURCE_DIR}/../../data-models/oxo_wsdl/IcsNotifier/IcsNotifier.wsdl") +SET(ICSAPI + "${xml-t_SOURCE_DIR}/../../data-models/alcatel-lucent/ics70/IcsApiFramework.wsdl") +SET(WSDL_TYPES "NotifierService") + + +# +# Try to manage wsdl.... +# +ADD_CUSTOM_COMMAND( + SOURCE ${ICSNOTIFIER} + COMMAND java + ARGS -jar ${SAXON} -s ${ICSNOTIFIER} -xsl:${WSDL2} rootdir="./parser/" + target="soap" output="parser/IcsNotifierService" + incdir="./include" srcdir="./parser" types="${WSDL_TYPES}.h" root-element="Envelope" + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parser/IcsNotifierService.cpp + ${CMAKE_CURRENT_BINARY_DIR}/include/IcsNotifierService.h + COMMENT "Transform wsdl to soap IcsNotifierService.cpp and h" + ) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/IcsNotifierService.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/include/IcsNotifierService.h + GENERATED) + +WSDL2CPP( + SOURCE ${ICSAPI} + OUTPUT IcsApiFrameworkService + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/parser/ApiFrameworkService.cpp + ) +# +# Handler xsds +# + +ADD_CUSTOM_COMMAND( + SOURCE ${ICSNOTIFIER} + COMMAND java + ARGS -jar ${SAXON} -s ${ICSNOTIFIER} -xsl:${WSDL2} rootdir="./parser/" + target="soap" output="icsNotifier" + incdir="./include" srcdir="./parser" types="${WSDL_TYPES}.h" root-element="Envelope" + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/icsNotifier.cpp + COMMENT "Transform wsdl to soap service icsNotifier.cpp" + ) + +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/icsNotifier.cpp + GENERATED) + +# +# +# +XSD2CPP( + SOURCE ${ICSNS} + OUTPUT NotifierService + ROOT-ELEMENT Envelope + NAMEPSACE test/ics_notifier/nsmap.xml + XSDDIRS "./\;/home/aeb/Devs/home/data-models/oxo_wsdl/\;../../data-models/oxo_wsdl/\;./../\;" + DEPENDS ${ICSNS} + ${CMAKE_CURRENT_BINARY_DIR}/parser/SubscriptionFilter.cpp + ) + +XSD2CPP( + SOURCE ${MODEL}/ApiFrameworkService.xsd + OUTPUT ApiFrameworkService + ROOT-ELEMENT + NAMEPSACE test/ics_notifier/nsmap.xml + XSDDIRS "./\;/home/aeb/Devs/home/data-models/oxo_wsdl/\;../../data-models/oxo_wsdl/\;./../\;" + DEPENDS ${ICSNS} + ) + +XSD2CPP_BOTH(${ICSSF} SubscriptionFilter "" "./../\;" + "tests/ics_notifier/nsmap.xml") + +XSD2CPP_BOTH(${XMI} soap-envelope "" "./../\;" + "tests/ics_notifier/nsmap.xml") +# + +XSD2CPP_BOTH(${SOAPENC} soap-encoding "" "./../\;" + "tests/ics_notifier/nsmap.xml") + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + + +ADD_EXECUTABLE(icsns_soap_serialize + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/NotifierService.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/IcsNotifierService.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/SubscriptionFilter.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/IcsApiFrameworkService.cpp + TCSoapNotifier.cpp + ) + +TARGET_LINK_LIBRARIES(icsns_soap_serialize libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +ADD_EXECUTABLE(icsns_test_serialize + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/NotifierService.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/SubscriptionFilter.cpp + TCNotifier.cpp + ) + +TARGET_LINK_LIBRARIES(icsns_test_serialize libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +ADD_EXECUTABLE(icsns_test_parse + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/SubscriptionFilter.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_SubscriptionFilter.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/NotifierService.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_NotifierService.cpp + TCParseSubscribe.cpp + ) + +TARGET_LINK_LIBRARIES(icsns_test_parse libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + + diff --git a/tests/ics_notifier/TCNotifier.cpp b/tests/ics_notifier/TCNotifier.cpp new file mode 100644 index 0000000..c1bead9 --- /dev/null +++ b/tests/ics_notifier/TCNotifier.cpp @@ -0,0 +1,63 @@ +#include + + +#include "TCNotifier.h" +#include "SubscriptionFilter.h" +#include "soap-encoding.h" +#include "soap-envelope.h" + + +CPPUNIT_TEST_SUITE_REGISTRATION( TCNotifier ); + +using namespace subscriptionFilter; +using namespace envelope; +/** + * + */ +void TCNotifier::subscribe() +{ + std::ostringstream result(std::ostringstream::out); + subscribeRequest_sptr id(new subscribeRequest_skel()); + SubscriptionFilter_skel::selector_sptr selector( new Selector_skel()); + filter_sptr filter(new SubscriptionFilter_skel()); + + std::string name("onOne"); + std::string nu("http://localhost/ic70"); + std::string sid("12"); + selector->name(name); + selector->id(sid); + selector->family(nu); + filter->selector(selector); + id->fwSessionId(sid); + id->notificationUrl(nu); + id->filter(filter); + id->expires(new int(200)); + result<<*id; + std::cout<<" Res="<any(&*id); + e->Body(b); + std::cout<<" Complete E="<coucou"); + CPPUNIT_ASSERT(result.str() == expected); +} + +/** + * + * + */ +void TCNotifier::unsubscribe() +{ + std::ostringstream result(std::ostringstream::out); + unsubscribeRequest_sptr hr(new unsubscribeRequest_skel); + + //std::cout<<" Res="<<*hr<<" "<true"); + result.seekp(0); + //std::cout<<" Res1="<false"); +} diff --git a/tests/ics_notifier/TCNotifier.h b/tests/ics_notifier/TCNotifier.h new file mode 100644 index 0000000..2a11675 --- /dev/null +++ b/tests/ics_notifier/TCNotifier.h @@ -0,0 +1,27 @@ +#ifndef TCELEMENTS_H +#define TCELEMENTS_H + +#include +#include +#include + +#include +#include "include/NotifierService.h" + +using namespace notifierServiceSchema; + +class TCNotifier : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TCNotifier ); + CPPUNIT_TEST( subscribe ); + CPPUNIT_TEST( unsubscribe ); + CPPUNIT_TEST_SUITE_END(); + + public: + protected: + void subscribe(); + void unsubscribe(); +}; + +#endif + diff --git a/tests/ics_notifier/TCParseSubscribe.cpp b/tests/ics_notifier/TCParseSubscribe.cpp new file mode 100644 index 0000000..5c37af4 --- /dev/null +++ b/tests/ics_notifier/TCParseSubscribe.cpp @@ -0,0 +1,85 @@ +#include + + +#include "TCParseSubscribe.h" +#include "SubscriptionFilter.h" +#include "p_SubscriptionFilter.h" +#include "NotifierService.h" +#include "p_NotifierService.h" + +#include "soap-encoding.h" +#include "soap-envelope.h" + + +CPPUNIT_TEST_SUITE_REGISTRATION( TCParseSubscribe ); + +using namespace notifierServiceSchema; +using namespace subscriptionFilter; +using namespace envelope; +/** + * + */ +void TCParseSubscribe::subscribe() +{ + + std::string test="100onMakeCallonCallModified"; + std::istringstream iss1(test,std::istringstream::in); + + p_SubscriptionFilter_skel filter; + SubscriptionFilter_skel r; + p_Selector_skel sel; + ::xsd::parser::SimpleElement name,id,family,org; + sel.name_parser(name); + sel.id_parser(id); + sel.family_parser(family); + filter.selector_parser(sel); + + xsd::parser::expat::Document doc(filter,"filter"); + doc.parse(iss1); + filter.post(r); + std::cout<<" Size ="<name()[0])<<"\n"; + std::cout<<*(r.selector()[1]->name()[0])<<"\n"; + +} + +/** + * + */ +void TCParseSubscribe::subscribeRequest() +{ + + std::string test="xxAAhttp://www.x.fr/100onMakeCallonCallModified"; + std::istringstream iss1(test,std::istringstream::in); + + subscribeRequest_skel s; + p_subscribeRequest_skel sr; + p_SubscriptionFilter_skel filter; + p_Selector_skel sel; + ::xsd::parser::SimpleElement name,id,family,org,fws,notif; + sel.name_parser(name); + sel.id_parser(id); + sel.family_parser(family); + filter.selector_parser(sel); + sr.fwSessionId_parser(fws); + sr.notificationUrl_parser(notif); + sr.filter_parser(filter); + xsd::parser::expat::Document doc(sr,"subscribeRequest"); + doc.parse(iss1); + sr.post(s); + std::cout<<" Size = "<name()[0])<<"\n"; + std::cout<<*(s.filter().selector()[1]->name()[0])<<"\n"; + +} + + +/** + * + * + */ +void TCParseSubscribe::unsubscribe() +{ +} diff --git a/tests/ics_notifier/TCParseSubscribe.h b/tests/ics_notifier/TCParseSubscribe.h new file mode 100644 index 0000000..aeebd44 --- /dev/null +++ b/tests/ics_notifier/TCParseSubscribe.h @@ -0,0 +1,32 @@ +#ifndef TCELEMENTS_H +#define TCELEMENTS_H + +#include +#include +#include + +#include +#include "include/NotifierService.h" +#include "include/IcsNotifierService.h" +#include "include/SubscriptionFilter.h" +#include "include/p_SubscriptionFilter.h" + +using namespace notifierServiceSchema; + +class TCParseSubscribe : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TCParseSubscribe ); + CPPUNIT_TEST( subscribe ); + CPPUNIT_TEST( subscribeRequest ); + CPPUNIT_TEST( unsubscribe ); + CPPUNIT_TEST_SUITE_END(); + + public: + protected: + void subscribe(); + void subscribeRequest(); + void unsubscribe(); +}; + +#endif + diff --git a/tests/ics_notifier/TCSoapNotifier.cpp b/tests/ics_notifier/TCSoapNotifier.cpp new file mode 100644 index 0000000..5bda2b3 --- /dev/null +++ b/tests/ics_notifier/TCSoapNotifier.cpp @@ -0,0 +1,61 @@ +#include + + +#include "TCSoapNotifier.h" +#include "SubscriptionFilter.h" +#include "soap-encoding.h" +#include "soap-envelope.h" + + +CPPUNIT_TEST_SUITE_REGISTRATION( TCSoapNotifier ); + +using namespace subscriptionFilter; +using namespace envelope; +/** + * + */ +void TCSoapNotifier::subscribe() +{ + std::ostringstream result(std::ostringstream::out); + subscribeRequest_sptr id(new subscribeRequest_skel()); + SubscriptionFilter_skel::selector_sptr selector( new Selector_skel()); + filter_sptr filter(new SubscriptionFilter_skel()); + + std::string name("onOne"); + std::string nu("http://localhost/ic70"); + std::string sid("12"); + selector->name(name); + selector->id(sid); + selector->family(nu); + filter->selector(selector); + id->fwSessionId(sid); + id->notificationUrl(nu); + id->filter(filter); + id->expires(new int(200)); + Op_subscribe req; + req.send(std::cout,id); + req.send(result,id); + std::cout<<"\nRes="<12http://localhost/ic70onOne12http://localhost/ic70200"); + CPPUNIT_ASSERT(result.str() == expected); +} + +/** + * + * + */ +void TCSoapNotifier::unsubscribe() +{ + std::ostringstream result(std::ostringstream::out); + unsubscribeRequest_sptr hr(new unsubscribeRequest_skel); + + //std::cout<<" Res="<<*hr<<" "<true"); + result.seekp(0); + //std::cout<<" Res1="<false"); +} diff --git a/tests/ics_notifier/TCSoapNotifier.h b/tests/ics_notifier/TCSoapNotifier.h new file mode 100644 index 0000000..0b930fc --- /dev/null +++ b/tests/ics_notifier/TCSoapNotifier.h @@ -0,0 +1,28 @@ +#ifndef TCELEMENTS_H +#define TCELEMENTS_H + +#include +#include +#include + +#include +#include "include/NotifierService.h" +#include "include/IcsNotifierService.h" + +using namespace notifierServiceSchema; + +class TCSoapNotifier : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TCSoapNotifier ); + CPPUNIT_TEST( subscribe ); + CPPUNIT_TEST( unsubscribe ); + CPPUNIT_TEST_SUITE_END(); + + public: + protected: + void subscribe(); + void unsubscribe(); +}; + +#endif + diff --git a/tests/ics_notifier/main_test.cpp b/tests/ics_notifier/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/ics_notifier/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/ics_notifier/nsmap.xml b/tests/ics_notifier/nsmap.xml new file mode 100644 index 0000000..d20a23f --- /dev/null +++ b/tests/ics_notifier/nsmap.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/tests/kml/CMakeLists.txt b/tests/kml/CMakeLists.txt new file mode 100644 index 0000000..518b7c8 --- /dev/null +++ b/tests/kml/CMakeLists.txt @@ -0,0 +1,41 @@ +PROJECT(kml) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + + +SET(KML21 + "${xml-t_SOURCE_DIR}/../../data-models/kml21.xsd") + + +# + +XSD2CPP(SOURCE ${KML21} + OUTPUT kml21 + XSDDIRS "./../\;../../data-models/\;" +) + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +# +# +# +ADD_EXECUTABLE(kml + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/kml21.cpp + ) + +TARGET_LINK_LIBRARIES(kml libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + + diff --git a/tests/kml/main_test.cpp b/tests/kml/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/kml/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/pgml/CMakeLists.txt b/tests/pgml/CMakeLists.txt new file mode 100644 index 0000000..4a2ad4c --- /dev/null +++ b/tests/pgml/CMakeLists.txt @@ -0,0 +1,54 @@ +PROJECT(pgml) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + +#SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +#SET(WSDL2 "${CMAKE_CURRENT_SOURCE_DIR}/../../wsdl2.xsl") +#SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") + +SET(PGML + "${xml-t_SOURCE_DIR}/../../data-models/pgml.xsd") + + +# + +XSD2CPP_BOTH(${PGML} pgml "" "./../\;" + "tests/pgml/nsmap.xml") + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +# +# +# +ADD_EXECUTABLE(pgml_serialize + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/pgml.cpp + ) + +TARGET_LINK_LIBRARIES(pgml_serialize libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +# +ADD_EXECUTABLE(pgml_parse + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/pgml.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_pgml.cpp + ) + +TARGET_LINK_LIBRARIES(pgml_parse libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + + diff --git a/tests/pgml/main_test.cpp b/tests/pgml/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/pgml/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/soap/CMakeLists.txt b/tests/soap/CMakeLists.txt new file mode 100644 index 0000000..c8d9ad2 --- /dev/null +++ b/tests/soap/CMakeLists.txt @@ -0,0 +1,146 @@ +PROJECT(soap) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}") +INCLUDE_DIRECTORIES("/usr/local/include") + +SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +SET(WSDL2 "${CMAKE_CURRENT_SOURCE_DIR}/../../wsdl2.xsl") +SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") + +SET(XMI "${xml-t_SOURCE_DIR}/../../data-models/soap-envelope.xsd") +SET(SOAPENC "${xml-t_SOURCE_DIR}/../../data-models/soap-encoding.xsd") +SET(OXO "${xml-t_SOURCE_DIR}/../../data-models/oxo_wsdl/oxo_web_services.wsdl") + +SET(WSDL_TYPES "oxo_ws") +MESSAGE("OK read : ${OXO}") + +ADD_CUSTOM_COMMAND( + SOURCE ${OXO} + COMMAND java + ARGS -jar ${SAXON} -s ${OXO} -xsl:${WSDL2} rootdir="./parser/" + target="release" output="${WSDL_TYPES}.xsd" + incdir="/../include" srcdir="./" root-element="Envelope" + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${WSDL_TYPES}.xsd + COMMENT "Transform wsdl to xsd ${WSDL_TYPES}.xsd" + ) + +ADD_CUSTOM_COMMAND( + SOURCE ${OXO} + COMMAND java + ARGS -jar ${SAXON} -s ${OXO} -xsl:${WSDL2} rootdir="./parser/" + target="soap" output="oxo_web_services" + incdir="./include" srcdir="./" types="${WSDL_TYPES}.h" root-element="Envelope" + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/oxo_web_services.cpp + COMMENT "Transform wsdl to soap service oxo_web_services.cpp" + ) + +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/oxo_web_services.cpp + GENERATED) +#ADD_CUSTOM_TARGET(${WSDL_TYPES}.xsd ALL) + +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${WSDL_TYPES}.xsd + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${WSDL_TYPES}.xsd + GENERATED) + +ADD_CUSTOM_COMMAND( + SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${WSDL_TYPES}.xsd + COMMAND java + ARGS -jar ${SAXON} -s ${CMAKE_CURRENT_BINARY_DIR}/${WSDL_TYPES}.xsd -xsl:${XSD2CPP} rootdir="./parser/" + target="release" + incdir="/../include" srcdir="./" root-element="Envelope" + xsddir="./\;/home/aeb/Devs/home/data-models/oxo_wsdl/\;../../data-models/oxo_wsdl/\;./../\;${xml-t_SOURCE_DIR}/../../data-models/\;" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_${WSDL_TYPES}.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/${WSDL_TYPES}.cpp + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${WSDL_TYPES}.xsd + COMMENT "Transform ${WSDL_TYPES}.xsd" + ) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/p_${WSDL_TYPES}.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/${WSDL_TYPES}.cpp + GENERATED) +ADD_CUSTOM_COMMAND( + SOURCE ${XMI} + COMMAND java + ARGS -jar ${SAXON} -s ${XMI} -xsl:${XSD2CPP} rootdir="./parser/" + target="release" + incdir="/../include" srcdir="./" root-element="Envelope" + xsddir="/home/aeb/Devs/tools/data-models" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-envelope.cpp + COMMENT "Transform ${XMI}" + ) + +# xsddir="xsl:nodeset\(/home/aeb/Devs/tools/data-models\)" + +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/p_soap-envelope.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/soap-envelope.cpp + GENERATED) + + +ADD_CUSTOM_COMMAND( + SOURCE ${SOAPENC} + COMMAND java + ARGS -jar ${SAXON} -s ${SOAPENC} -xsl:${XSD2CPP} rootdir="./parser/" + target="release" + incdir="/../include" srcdir="./" root-element="Envelope" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-encoding.cpp + COMMENT "Transform ${SOAPENC}" + ) + + +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/p_soap-encoding.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/soap-encoding.cpp + GENERATED) + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +ADD_EXECUTABLE(tparser_soap + main.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_${WSDL_TYPES}.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/${WSDL_TYPES}.cpp + ) + +TARGET_LINK_LIBRARIES(tparser_soap libxsd ${EXPAT_LIB}) + +ADD_EXECUTABLE(oxo_web_service + main_soap.cpp + ${CMAKE_CURRENT_BINARY_DIR}/oxo_web_services.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/${WSDL_TYPES}.cpp + ) +TARGET_LINK_LIBRARIES(oxo_web_service libxsd ${EXPAT_LIB}) + +ADD_EXECUTABLE(soap_test_serialize + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/oxo_web_services.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-envelope.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/soap-encoding.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/${WSDL_TYPES}.cpp + TCSoapSerialize.cpp + ) + +TARGET_LINK_LIBRARIES(soap_test_serialize libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + + + diff --git a/tests/soap/TCSoapSerialize.cpp b/tests/soap/TCSoapSerialize.cpp new file mode 100644 index 0000000..cdc38b6 --- /dev/null +++ b/tests/soap/TCSoapSerialize.cpp @@ -0,0 +1,92 @@ +#include + +#include "TCSoapSerialize.h" +using namespace envelope; + +CPPUNIT_TEST_SUITE_REGISTRATION( TCSoapSerialize ); + +/** + * + */ +void TCSoapSerialize::login() +{ + std::ostringstream result(std::ostringstream::out); + std::string name("dede"); + std::string pwd("yes"); + Envelope_sptr e(new Envelope_skel()); + Body_sptr b(new Body_skel()); + login_skel l; + login_skel::invoke_sptr login(new UserLogin_skel()); + login->loginName(name); + login->password(pwd); + l.invoke(login); + //result<any(&l); + e->Body(b); + std::cout<<" Complete E="<coucou"); +} + +/** + * + * + */ +void TCSoapSerialize::User() +{ + std::ostringstream result(std::ostringstream::out); + std::string name("ebersold"); + std::string ln("aeb"); + std::string pwd("andre"); + std::string firstname("yes"); + std::string main_number("1234"); + + User_skel user; + + user.name(name); + user.loginName(ln); + user.firstName(pwd); + user.mainNumber(main_number); + + std::cout<<" Res="<ebersoldandreaeb1234"); +#if 0 + *hr = false; + result << HoldRequests_elem_type(hr); + CPPUNIT_ASSERT(result.str() =="false"); +#endif +} +#if 0 +void TCSoapSerialize::Fault() +{ + std::ostringstream result(std::ostringstream::out); + Fault_skel fault; +} +void TCSoapSerialize::GetRPCMethods() +{ +} +void TCSoapSerialize::SetParameterValues() +{ +} +void TCSoapSerialize::GetParameterValues() +{ +} +void TCSoapSerialize::GetParameterNames() +{ +} +void TCSoapSerialize::GetParameterNamesResponse() +{ +} +void TCElements::SetParameterAttributes() +{ +} +#endif diff --git a/tests/soap/TCSoapSerialize.h b/tests/soap/TCSoapSerialize.h new file mode 100644 index 0000000..fdbbdb4 --- /dev/null +++ b/tests/soap/TCSoapSerialize.h @@ -0,0 +1,39 @@ +#ifndef TCSOAPSERIALIZE_H +#define TCSOAPSERILIAZE_H + +#include +#include +#include + +#include +#include "include/soap-encoding.h" +#include "include/soap-envelope.h" +#include "include/oxo_ws.h" + +using namespace urncomalcatelotssoftphone; + +class TCSoapSerialize : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TCSoapSerialize ); + CPPUNIT_TEST( login ); + CPPUNIT_TEST( User ); +/* + CPPUNIT_TEST( HoldRequests ); + CPPUNIT_TEST( Fault ); + CPPUNIT_TEST( GetRPCMethods ); + CPPUNIT_TEST( SetParameterValues ); + CPPUNIT_TEST( GetParameterValues ); + CPPUNIT_TEST( GetParameterNames ); + CPPUNIT_TEST( GetParameterNamesResponse ); + CPPUNIT_TEST( SetParameterAttributes ); +*/ + CPPUNIT_TEST_SUITE_END(); + + public: + protected: + void login(); + void User(); +}; + +#endif + diff --git a/tests/soap/main.cpp b/tests/soap/main.cpp new file mode 100644 index 0000000..d247263 --- /dev/null +++ b/tests/soap/main.cpp @@ -0,0 +1,82 @@ +#include + +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include +using namespace envelope; +void test2(xsd::parser::ParserBase &p) +{ + std::string test="
andre
Marc
"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(p,"Envelope"); + doc.parse(iss1); +} + +void test1(xsd::parser::ParserBase &p) +{ + std::string test="dede"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(p,"Envelope"); + doc.parse(iss1); +} + +class BodyParser : public virtual envelope::p_Body_skel +{ + public: + BodyParser() {}; + ~BodyParser() {}; + + + virtual void startAnyElement(const std::string &ns,const std::string &n) + { + std::cout<<"My BodyParser start Any: "< + +#include +#include +#include + +#include +//#include + +#include +//#include + +#include + +using namespace envelope; +using namespace std; +using namespace urncomalcatelotssoftphone; + +int main(int argc,char **argv) +{ + cout<<"Hello world"< + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/svg/CMakeLists.txt b/tests/svg/CMakeLists.txt new file mode 100644 index 0000000..cc44778 --- /dev/null +++ b/tests/svg/CMakeLists.txt @@ -0,0 +1,71 @@ +PROJECT(svg) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + +#SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +#SET(WSDL2 "${CMAKE_CURRENT_SOURCE_DIR}/../../wsdl2.xsl") +#SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") + +SET(SVG + "${xml-t_SOURCE_DIR}/../../data-models/svg.xsd") +SET(XLINK + "${xml-t_SOURCE_DIR}/../../data-models/xlink-1999.xsd") +SET(XML + "${xml-t_SOURCE_DIR}/../../data-models/namespace.xsd") + + + + +# + +XSD2CPP_BOTH(${SVG} svg "" "./../\;../../data-models/\;" + "tests/svg/nsmap.xml") + +XSD2CPP_BOTH(${XML} namespace "" "./../\;../../data-models/\;" + "tests/svg/nsmap.xml") + +XSD2CPP_BOTH(${XLINK} xlink-1999 "" "./../\;../../data-models/\;" + "tests/svg/nsmap.xml") + + + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +# +# +# +ADD_EXECUTABLE(svg_serialize + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xlink-1999.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/namespace.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/svg.cpp + ) + +TARGET_LINK_LIBRARIES(svg_serialize libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +# +ADD_EXECUTABLE(svg_parse + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xlink-1999.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/namespace.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_svg.cpp + ) + +TARGET_LINK_LIBRARIES(svg_parse libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + + diff --git a/tests/svg/main_test.cpp b/tests/svg/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/svg/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/t8000/CMakeLists.txt b/tests/t8000/CMakeLists.txt new file mode 100644 index 0000000..05364a4 --- /dev/null +++ b/tests/t8000/CMakeLists.txt @@ -0,0 +1,129 @@ +PROJECT(t8000) + +#ENABLE_TESTING() + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +FIND_LIBRARY(CPPUNIT_LIB cppunit "/usr/local/lib:/usr/lib") +FIND_LIBRARY(DL_LIB dl "/lib:/usr/local/lib:/usr/lib") + +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES(".") +INCLUDE_DIRECTORIES("${aebutils_SOURCE_DIR}") +INCLUDE_DIRECTORIES("/usr/local/include") + +SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") +#SET(XMI "${xml-t_SOURCE_DIR}/../../data-models/xmi.xsd") +SET(PROFILE "${xml-t_SOURCE_DIR}/../../data-models/alcatel-lucent/t8000_profile.xsd") +SET(INDEX "${xml-t_SOURCE_DIR}/../../data-models/alcatel-lucent/t8000_index.xsd") + + +ADD_CUSTOM_COMMAND( + SOURCE ${PROFILE} + COMMAND java + ARGS -jar ${SAXON} -s ${PROFILE} -xsl:${XSD2CPP} rootdir="./parser/" + target="release" root-element="profile" shared-ptr="aeb" incdir="/../include" srcdir="./" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_t8000_profile.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/t8000_profile.cpp + COMMENT "Transform t8000_profile.xsd" + ) + +ADD_CUSTOM_COMMAND( + SOURCE ${INDEX} + COMMAND java + ARGS -jar ${SAXON} -s ${INDEX} -xsl:${XSD2CPP} rootdir="./parser/" + target="release" generate-print="no" root-element="signed-component" incdir="/../include" srcdir="./" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_t8000_index.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/t8000_index.cpp + COMMENT "Transform t8000_index.xsd" + ) + +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/t8000_profile.cpp + GENERATED) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/parser/p_t8000_profile.cpp + GENERATED) + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +ADD_EXECUTABLE(profile + ${CMAKE_CURRENT_BINARY_DIR}/parser/t8000_profile.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_t8000_profile.cpp + main.cpp + ) +TARGET_LINK_LIBRARIES(profile libxsd ${EXPAT_LIB}) + + +ADD_EXECUTABLE(t8000_index + ${CMAKE_CURRENT_BINARY_DIR}/parser/t8000_index.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_t8000_index.cpp + main_index.cpp + ) +TARGET_LINK_LIBRARIES(t8000_index libxsd ${EXPAT_LIB}) + +ADD_EXECUTABLE(merge_index + ${CMAKE_CURRENT_BINARY_DIR}/parser/t8000_index.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_t8000_index.cpp + merge_index.cpp + ) +TARGET_LINK_LIBRARIES(merge_index libxsd ${EXPAT_LIB}) + + +# +# Test Stuff +# +IF(NOT ${CPPUNIT_LIB}) + # ADD_TEST(SimpleType tp_basic01 Hello) + #ADD_TEST(SimpleTypeSerialize sr_basic01 Hello) + # ADD_TEST(SimpleTypeNativeTypes tparser_basic Hello) + # ADD_TEST(SimpleTypeRef tparser_basic Hello) + # ADD_TEST(SimpleTypeUnion tparser_basic Hello) + # ADD_TEST(SimpleTypeEnumaration tparser_basic Hello) + # ADD_TEST(SimpleTypeExtesion tparser_basic Hello) + # ADD_TEST(SimpleTypeRestriction tparser_basic Hello) + # ADD_TEST(ComplexType tparser_basic Hello) + # ADD_TEST(ComplexTypeSequence tparser_basic Hello) + # ADD_TEST(ComplexTypeChoice tparser_basic Hello) + # ADD_TEST(ComplexTypeAll tparser_basic Hello) + # ADD_TEST(ComplexTypeNamespace tparser_basic Hello) +ELSE(NOT ${CPPUNIT_LIB}) + MESSAGE("I do not have cppunit library ${CPPUNIT_LIB} ") +ENDIF(NOT ${CPPUNIT_LIB}) + + +# +# Install stuff +# +INSTALL(TARGETS profile merge_index t8000_index + ARCHIVE + RUNTIME DESTINATION examples/t8000 + COMPONENT Examples) + +INSTALL(FILES + ${PROFILE} + DESTINATION examples/t8000 + COMPONENT Examples + ) +INSTALL(FILES + ${t8000_SOURCE_DIR}/main.cpp + ${t8000_SOURCE_DIR}/main_index.cpp + ${t8000_SOURCE_DIR}/merge_index.cpp + DESTINATION examples/t8000 + COMPONENT Examples + ) +INSTALL(FILES + ${t8000_BINARY_DIR}/parser/t8000_profile.cpp + ${t8000_BINARY_DIR}/parser/p_t8000_profile.cpp + DESTINATION examples/t8000/parser + COMPONENT Examples + ) +INSTALL(FILES + ${t8000_BINARY_DIR}/include/t8000_profile.h + ${t8000_BINARY_DIR}/include/p_t8000_profile.h + DESTINATION examples/t8000/include + COMPONENT Examples + ) diff --git a/tests/t8000/main.cpp b/tests/t8000/main.cpp new file mode 100644 index 0000000..60609df --- /dev/null +++ b/tests/t8000/main.cpp @@ -0,0 +1,107 @@ +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace std; +using namespace profile; + +class myContent : public virtual p_Component_skel +{ + public: + myContent() {std::cout<<"create myContent\n";}; + ~myContent() {}; + protected: + // virtual void onAttramount(const std::string &v) {std::cout<<" Got ammount : "<(s.m_data)); + std::cout<<"postImpl to avoid removing from ... stack_size="< + +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace std; +using namespace index; + +class myContent : public virtual p_Component_skel +{ + public: + myContent() {std::cout<<"create myContent\n";}; + ~myContent() {}; + protected: + // virtual void onAttrname(const std::string &v) {std::cout<<" Got name : "<component(component); +#if 1 + //p_Component_skel pxmi_c; + myContent pxmi_c; + p_Checksum_skel checksum; + p_ChecksumType_skel checksum_type; + p_Rpm_skel rpm; + // p1.TextField_parser(tf); + pxmi.component_parser(pxmi_c); /* Panel in View*/ + + rpm.name_parser(name_parser); /* p1 is Panel in Panel from view second panel */ + //p2.TextField_parser(tf); + pxmi_c.name_parser(n1); /* p1 is Panel in Panel from view second panel */ + checksum.type_parser(checksum_type); + rpm.checksum_parser(checksum); + rpm.version_parser(version); + rpm.path_parser(path); + rpm.epoch_parser(epoch); + rpm.arch_parser(arch); + rpm.rpm_size_parser(rpm_size); + rpm.installed_size_parser(i_size); + rpm.release_parser(release); + rpm.requires_parser(req); + rpm.category_parser(cat); + pxmi_c.rpm_parser(rpm); + //test1("WbmUser/views/UserEdit.gml",pxmi); + test1("/users/aebersol/Documents/ts8000_upgrade_index.xml",pxmi); +#endif + + pxmi.post(*v); + std::cout<<"Final Result:\n"; + std::cout<component().rpm(); + std::cout<<"Number of rpms = "< + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +using namespace std; +using namespace index; + +class myComponent : public virtual p_Component_skel +{ + public: + myComponent() {}; + ~myComponent() {}; + protected: + virtual void onElname(std::string &dede) {std::cout<<" Got Name : "<(s.m_data)); + // std::cout<<"postImpl to avoid removing from ... stack_size="<0 )m_context.pop_back(); + } + virtual void preImpl() + { + m_context.push_back(State()); + //std::cout<<"Called my preImpl stack size="<name() == (*rit)->name()) + { + found = true; + break; + } + } + /* If not found add found */ + if (!found) + { + Rpm_skel *r = new Rpm_skel(); + *r = *(*it); + ref_rpms.push_back(Component_skel::rpm_sptr(r)); + } + } + std::cout<<"Number of rpms in ref rpms = "< + + + + + gatewayDnsTitleKey + + + primDnsServerKey + + + secDnsServerKey + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsGatewayParameters.gml b/tests/umf/WbmTelphony/views/ArsGatewayParameters.gml new file mode 100644 index 0000000..2fa4b41 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsGatewayParameters.gml @@ -0,0 +1,69 @@ + + + + + + + GatewayParametersTitleKey + + + + AddKey + + + + DeleteKey + + + + ModifyKey + + + + + + + gwayNameKey + gwayipTypeKey + gwayipAddressKey + gwayhostnameKey + gwayAliveProtocolKey + gwayAliveTimeoutKey + gwayBandwidthKey + codecFramingKey + gwayAliveStatusKey + + + + + + + + + + + + + + + + primDnsServerKey + + + ModifyKey + + + + + secDnsServerKey + + + + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsGatewayParametersAdd.gml b/tests/umf/WbmTelphony/views/ArsGatewayParametersAdd.gml new file mode 100644 index 0000000..513e954 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsGatewayParametersAdd.gml @@ -0,0 +1,89 @@ + + + + + GatewayParametersAddKey + + + + + GatewayParametersKey + + + gwayNameKey + + + gwayipTypeKey + + + gwayipAddressKey + + + gwayhostnameKey + + + gwayAliveProtocolKey + + + gwayAliveTimeoutKey + + + gwayBandwidthKey + + + codecFramingKey + + + gwayAliveStatusKey + + + + + + GatewayAdvancedParametersTitleKey + + + gwayloginKey + + + gwaypasswordKey + + + gwaydomainNameKey + + + gwayrealmKey + + + gwayrfcKey + + + gwayremoteSipPortKey + + + gwaydnsKey + + + gwayoutBoundProxyKey + + + + gwaysipNumbersFmtIndexKey + + + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsGatewayParametersDelete.gml b/tests/umf/WbmTelphony/views/ArsGatewayParametersDelete.gml new file mode 100644 index 0000000..bc52527 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsGatewayParametersDelete.gml @@ -0,0 +1,33 @@ + + + + + + GatewayParametersDeleteTitleKey + + + + + ConfirmDeletionKey + + ArsConfirmDeletionMessageKey + + hiddenRowId + + + + + + OKKey + + + CancelKey + + + + + diff --git a/tests/umf/WbmTelphony/views/ArsGatewayParametersModify.gml b/tests/umf/WbmTelphony/views/ArsGatewayParametersModify.gml new file mode 100644 index 0000000..ca0ca35 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsGatewayParametersModify.gml @@ -0,0 +1,91 @@ + + + + + + GatewayParametersModifyKey + + + + + + GatewayParametersKey + + + gwayNameKey + + + gwayipTypeKey + + + gwayipAddressKey + + + gwayhostnameKey + + + gwayAliveProtocolKey + + + gwayAliveTimeoutKey + + + gwayBandwidthKey + + + codecFramingKey + + + gwayAliveStatusKey + + + + + + GatewayAdvancedParametersTitleKey + + + gwayloginKey + + + gwaypasswordKey + + + gwaydomainNameKey + + + gwayrealmKey + + + gwayrfcKey + + + gwayremoteSipPortKey + + + gwaydnsKey + + + gwayoutBoundProxyKey + + + + gwaysipNumbersFmtIndexKey + + + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsPrefixes.gml b/tests/umf/WbmTelphony/views/ArsPrefixes.gml new file mode 100644 index 0000000..0bbcd2d --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsPrefixes.gml @@ -0,0 +1,51 @@ + + + + + + + prefixesTitleKey + + + + AddKey + + + AddSublineKey + + + + DeleteKey + + + + ModifyKey + + + + + + + + prefActivation + prefNetwork + prefPrefix + prefRanges + prefSubstitute + prefTrGpList + prefUserComment + prefDestination + + + + + + + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsPrefixesAdd.gml b/tests/umf/WbmTelphony/views/ArsPrefixesAdd.gml new file mode 100644 index 0000000..1357baf --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsPrefixesAdd.gml @@ -0,0 +1,64 @@ + + + + + + prefixesAddTitleKey + + + prefHiddenRowId + + + prefListIdKey + + + prefActivation + + + prefNetwork + + + prefPrefix + + + prefRanges + + + prefSubstitute + + + prefTrGpList + + + prefUserComment + + + prefDestination + + + prefMetering + + + prefCalling + + + prefCalled + + + prefppCalled + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsPrefixesAddSubline.gml b/tests/umf/WbmTelphony/views/ArsPrefixesAddSubline.gml new file mode 100644 index 0000000..464454a --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsPrefixesAddSubline.gml @@ -0,0 +1,64 @@ + + + + + + PrefixesAddSublineTitleKey + + + prefHiddenRowId + + + prefListIdKey + + + prefActivation + + + prefNetwork + + + prefPrefix + + + prefRanges + + + prefSubstitute + + + prefTrGpList + + + prefUserComment + + + prefDestination + + + prefMetering + + + prefCalling + + + prefCalled + + + prefppCalled + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsPrefixesDelete.gml b/tests/umf/WbmTelphony/views/ArsPrefixesDelete.gml new file mode 100644 index 0000000..4cd2d07 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsPrefixesDelete.gml @@ -0,0 +1,33 @@ + + + + + + prefixesDeleteTitleKey + + + + + ConfirmDeletionKey + + ArsConfirmDeletionMessageKey + + hiddenRowId + + + + + + OKKey + + + CancelKey + + + + + diff --git a/tests/umf/WbmTelphony/views/ArsPrefixesModify.gml b/tests/umf/WbmTelphony/views/ArsPrefixesModify.gml new file mode 100644 index 0000000..8d683b9 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsPrefixesModify.gml @@ -0,0 +1,64 @@ + + + + + + PrefixesModifyTitleKey + + + prefHiddenRowId + + + prefListIdKey + + + prefActivation + + + prefNetwork + + + prefPrefix + + + prefRanges + + + prefSubstitute + + + prefTrGpList + + + prefUserComment + + + prefDestination + + + prefMetering + + + prefCalling + + + prefCalled + + + prefppCalled + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsSelectionList.gml b/tests/umf/WbmTelphony/views/ArsSelectionList.gml new file mode 100644 index 0000000..1064494 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsSelectionList.gml @@ -0,0 +1,32 @@ + + + + + + ArsSelectionListTitleKey + + + + + ArsSelectionListobjcKey + ArsSelectionListIndexKey + ArsSelectionListInternalNoKey + ArsSelectionListTypeKey + + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsSipPublicNumbering.gml b/tests/umf/WbmTelphony/views/ArsSipPublicNumbering.gml new file mode 100644 index 0000000..81398d8 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsSipPublicNumbering.gml @@ -0,0 +1,42 @@ + + + + + + SipTitleKey + + + + AddKey + + + + DeleteKey + + + + ModifyKey + + + + + + + outCallingFmtKey + outCallingPrefKey + outCalledFmtKey + outCalledPrefKey + outCalledShortPrefKey + inCallingFmtKey + inCallingPrefKey + inCalledFmtKey + inCalledPrefKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsSipPublicNumberingAdd.gml b/tests/umf/WbmTelphony/views/ArsSipPublicNumberingAdd.gml new file mode 100644 index 0000000..b962fce --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsSipPublicNumberingAdd.gml @@ -0,0 +1,77 @@ + + + + + + SipAddTitleKey + + + + + outCallingFmtKey + Canonical + International + National + National without intercity prefix + Regional + + + + outCallingPrefKey + + + + outCalledFmtKey + Canonical + International + National/International + National without intercity prefix + Undefined + + + + outCalledPrefKey + + + + outCalledShortPrefKey + + + + inCallingFmtKey + Canonical/International + National + Regional + Unknown + + + + inCallingPrefKey + + + + inCalledFmtKey + Canonical/International + National + Regional + DDI + + + + inCalledPrefKey + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsSipPublicNumberingDelete.gml b/tests/umf/WbmTelphony/views/ArsSipPublicNumberingDelete.gml new file mode 100644 index 0000000..4243b18 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsSipPublicNumberingDelete.gml @@ -0,0 +1,33 @@ + + + + + + ArsSipPublicNumberingDeleteKey + + + + + ConfirmDeletionKey + + ArsConfirmDeletionMessageKey + + SipIndexKey + + + + + + OKKey + + + CancelKey + + + + + diff --git a/tests/umf/WbmTelphony/views/ArsSipPublicNumberingModify.gml b/tests/umf/WbmTelphony/views/ArsSipPublicNumberingModify.gml new file mode 100644 index 0000000..803dbb2 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsSipPublicNumberingModify.gml @@ -0,0 +1,75 @@ + + + + + + SipModifyTitleKey + + + outCallingFmtKey + Canonical + International + National + National without intercity prefix + Regional + + + + outCallingPrefKey + + + + outCalledFmtKey + Canonical + International + National/International + National without intercity prefix + Undefined + + + + outCalledPrefKey + + + + outCalledShortPrefKey + + + + inCallingFmtKey + Canonical/International + National + Regional + Unknown + + + + inCallingPrefKey + + + + inCalledFmtKey + Canonical/International + National + Regional + DDI + + + + inCalledPrefKey + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsTrunkGroupsLists.gml b/tests/umf/WbmTelphony/views/ArsTrunkGroupsLists.gml new file mode 100644 index 0000000..c21b5b9 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsTrunkGroupsLists.gml @@ -0,0 +1,42 @@ + + + + + + + trunkTitleKey + + + + AddKey + + + AddSublineKey + + + + DeleteKey + + + + ModifyKey + + + + + + + listIdKey + trunkIndexKey + directoryNoKey + identCharKey + + + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAdd.gml b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAdd.gml new file mode 100644 index 0000000..e24ad8e --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAdd.gml @@ -0,0 +1,42 @@ + + + + + + trunkAddTitleKey + + + hiddenRowId + + + listIdKey + + + + trunkIndexKey + + + ... + + + + directoryNoKey + + + identCharKey + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAddSubline.gml b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAddSubline.gml new file mode 100644 index 0000000..a394cfc --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsAddSubline.gml @@ -0,0 +1,42 @@ + + + + + + trunkAddSublineTitleKey + + + hiddenRowId + + + listIdKey + + + + trunkIndexKey + + + ... + + + + directoryNoKey + + + identCharKey + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsDelete.gml b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsDelete.gml new file mode 100644 index 0000000..2d152be --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsDelete.gml @@ -0,0 +1,33 @@ + + + + + + trunkDeleteTitleKey + + + + + ConfirmDeletionKey + + ArsConfirmDeletionMessageKey + + hiddenRowId + + + + + + OKKey + + + CancelKey + + + + + diff --git a/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsModify.gml b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsModify.gml new file mode 100644 index 0000000..1440129 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ArsTrunkGroupsListsModify.gml @@ -0,0 +1,42 @@ + + + + + + trunkModifyTitleKey + + + hiddenRowId + + + listIdKey + + + + trunkIndexKey + + + ... + + + + directoryNoKey + + + identCharKey + + + + + OKKey + + + CancelKey + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/DevicesAdd.gml b/tests/umf/WbmTelphony/views/DevicesAdd.gml new file mode 100644 index 0000000..7b4b343 --- /dev/null +++ b/tests/umf/WbmTelphony/views/DevicesAdd.gml @@ -0,0 +1,60 @@ + + + + + + DevicesAddTitleKey + + + + + + + DevicesAddIPTerminalKey + + + DevicesAddVirtualTerminalKey + + + + + + + + + + + + DevicesAddNbDevicesKey + + + + No. + 127 + 128 + 129 + + + + + + + OKKey + + + CancelKey + + + + + + + + + + diff --git a/tests/umf/WbmTelphony/views/DevicesDelete.gml b/tests/umf/WbmTelphony/views/DevicesDelete.gml new file mode 100644 index 0000000..0ce001d --- /dev/null +++ b/tests/umf/WbmTelphony/views/DevicesDelete.gml @@ -0,0 +1,35 @@ + + + + + + DevicesDeleteTitleKey + + + + + ConfirmDeletionKey + + DevicesConfirmDeletionMessageKey + + + + + OKKey + + + CancelKey + + + + + + + + + diff --git a/tests/umf/WbmTelphony/views/DevicesDetails.gml b/tests/umf/WbmTelphony/views/DevicesDetails.gml new file mode 100644 index 0000000..e3b0a5b --- /dev/null +++ b/tests/umf/WbmTelphony/views/DevicesDetails.gml @@ -0,0 +1,239 @@ + + + + + + + DevicesDetailsTitleKey + + + + + + + + + DevicesDetailsMainPanelKey + + + + + + + DevicesDetailsDeviceFieldSetKey + + + DevicesDetailsPhysicalAddressTextFieldKey + + + DevicesDetailsNameTextFieldKey + + + + DevicesDetailsOriginalTypeTextFieldKey + + + DevicesDetailsModifyTypeButtonKey + + + + + + + + + + + DevicesDetailsIPFieldSetKey + + + DevicesDetailsMACAdressTextFieldKey + + + DevicesDetailsIPAddressTextFieldKey + + + + + DevicesDetailsVoiceCodingComboBoxKey + + + + DevicesDetailsEchoCancellationCheckBoxKey + + + DevicesDetailsVoiceActiveDetectionCheckBoxKey + + + + + + + + DevicesDetailsSIPFieldSetKey + + + + + DevicesDetailsAuthentificateSIPCheckBoxKey + + + DevicesDetailsSIPIdentityTextFieldKey + + + DevicesDetailsSIPPasswordTextFieldKey + + + + + + DevicesDetailsProfileCheckBoxKey + default + Profil 1 + Profil 2 + + + + + + + + + + Out of Service (logically) + + + + + + + + + + + + DevicesDetailsMiscellaneousPanelKey + + + + + + + DevicesDetailsHotlineFieldSetKey + + + None + Immediate + Delayed + + + DevicesDetailsDestinationNumberComboBoxKey + + + + + + + + + DevicesDetailsOutgoingAccessCheckBoxKey + + + + + + + + + DevicesDetailsLockStateTextFieldKey + + + + + + + + + + + DevicesDetailsTypeOfKeyboardComboBoxKey + + + + + DevicesDetailsNumericKeypadTypeComboBoxKey + + + + Priority Level + + + + + + + + + + + + DevicesDetailsInformationPanelKey + + + + DevicesDetailsInformationFieldSetKey + + + DevicesDetailsOriginalTypeTextFieldKey + + + DevicesDetailsTemporaryTypeTextFieldKey + + + DevicesDetailsModeTextFieldKey + + + DevicesDetailsSoftwareVersionTextFieldKey + + + DevicesDetailsBootLoaderVersionTextFieldKey + + + DevicesDetailsDataVersionTextFieldKey + + + DevicesDetailsHardwareNumberTextFieldKey + + + DevicesDetailsSerialNumberTextFieldKey + + + DevicesDetailsLocalizationVersionTextFieldKey + + + DevicesDetailsCustomizationVersionTextFieldKey + + + + + + + + + + + + OKKey + + + CancelKey + + + + + + diff --git a/tests/umf/WbmTelphony/views/DevicesList.gml b/tests/umf/WbmTelphony/views/DevicesList.gml new file mode 100644 index 0000000..025e3cb --- /dev/null +++ b/tests/umf/WbmTelphony/views/DevicesList.gml @@ -0,0 +1,46 @@ + + + + + + DevicesTitleKey + + + + + AddKey + + + + ModifyKey + + + + DeleteKey + + + + + + + DevicesListPhysicalAddressKey + DevicesListInternalNumberKey + DevicesListPublicNumberKey + DevicesListTerminalKey + DevicesListNameKey + DevicesListPhysicalServiceKey + DevicesListLogicalServiceKey + + + + + + + + + + diff --git a/tests/umf/WbmTelphony/views/DevicesType.gml b/tests/umf/WbmTelphony/views/DevicesType.gml new file mode 100644 index 0000000..1b81824 --- /dev/null +++ b/tests/umf/WbmTelphony/views/DevicesType.gml @@ -0,0 +1,35 @@ + + + + + + DevicesTypeTitleKey + + + + DevicesTypePhysicalAddressTextFieldKey + + + DevicesTypeNameTextFieldKey + + + + + DevicesTypeTerminalTypeComboBoxKey + + + + + OKKey + + + CancelKey + + + + + diff --git a/tests/umf/WbmTelphony/views/EndOfDialingAdd.gml b/tests/umf/WbmTelphony/views/EndOfDialingAdd.gml new file mode 100644 index 0000000..90bf826 --- /dev/null +++ b/tests/umf/WbmTelphony/views/EndOfDialingAdd.gml @@ -0,0 +1,40 @@ + + + + + + EndofDialingAddPrefixKey + + + + + DefaultCounterKey + + + + PrefixKey + + + + CounterKey + + + + + OKKey + + + CancelKey + + + + + + + + diff --git a/tests/umf/WbmTelphony/views/EndOfDialingDelete.gml b/tests/umf/WbmTelphony/views/EndOfDialingDelete.gml new file mode 100644 index 0000000..5769ecf --- /dev/null +++ b/tests/umf/WbmTelphony/views/EndOfDialingDelete.gml @@ -0,0 +1,31 @@ + + + + + + EndofDialingDeletePrefixKey + + + + + ConfirmDeletionKey + + EndofDialingDeleteConfirmDeletionMessageKey + + + + + OKKey + + + CancelKey + + + + + + + + + diff --git a/tests/umf/WbmTelphony/views/EndOfDialingModify.gml b/tests/umf/WbmTelphony/views/EndOfDialingModify.gml new file mode 100644 index 0000000..9f6e9ad --- /dev/null +++ b/tests/umf/WbmTelphony/views/EndOfDialingModify.gml @@ -0,0 +1,35 @@ + + + + + + + EndofDialingModifyPrefixKey + + + + + DefaultCounterKey + + + PrefixKey + + + CounterKey + + + + OKKey + + + CancelKey + + + + + diff --git a/tests/umf/WbmTelphony/views/EndOfDialingModifyDefaultCounter.gml b/tests/umf/WbmTelphony/views/EndOfDialingModifyDefaultCounter.gml new file mode 100644 index 0000000..f0654e9 --- /dev/null +++ b/tests/umf/WbmTelphony/views/EndOfDialingModifyDefaultCounter.gml @@ -0,0 +1,28 @@ + + + + + + ModifyDefaultCounterKey + + + + DefaultCounterKey + + + + + OKKey + + + CancelKey + + + + + diff --git a/tests/umf/WbmTelphony/views/ListOfAccesses.gml b/tests/umf/WbmTelphony/views/ListOfAccesses.gml new file mode 100644 index 0000000..21bb351 --- /dev/null +++ b/tests/umf/WbmTelphony/views/ListOfAccesses.gml @@ -0,0 +1,37 @@ + + + + + ListOfAccessesKey + + + + + deleteKey + + + + DetailsKey + + + + + + PhysicalAddressKey + AccessTypeNameKey + IdentifierKey + NoOfChannelKey + + + + + + + + + \ No newline at end of file diff --git a/tests/umf/WbmTelphony/views/NumberingPlansAddModify.gml b/tests/umf/WbmTelphony/views/NumberingPlansAddModify.gml new file mode 100644 index 0000000..89403e1 --- /dev/null +++ b/tests/umf/WbmTelphony/views/NumberingPlansAddModify.gml @@ -0,0 +1,70 @@ + + + + + + + + + NumberingPlansAddTitleKey + + + + + NumberingPlansAddModifyFunctionKey + + + + + NumberingPlansAddModifyStartKey + + + + + NumberingPlansAddModifyEndKey + + + + + NumberingPlansAddModifyBaseKey + + + + + NumberingPlansAddModifyNmtKey + Drop + Keep + + + + + NumberingPlansAddModifyPrivateKey + No + Yes + + + + + NumberingPlansAddModifyFaxKey + + + + + + OKKey + + + CancelKey + + + + + + + diff --git a/tests/umf/WbmTelphony/views/NumberingPlansDelete.gml b/tests/umf/WbmTelphony/views/NumberingPlansDelete.gml new file mode 100644 index 0000000..951a027 --- /dev/null +++ b/tests/umf/WbmTelphony/views/NumberingPlansDelete.gml @@ -0,0 +1,40 @@ + + + + + + + + + NumberingPlansDeleteTitleKey + + + + + + ConfirmDeletionKey + + NumberingPlansConfirmDeletionMessageKey + + + + + + OKKey + + + CancelKey + + + + + + + + + diff --git a/tests/umf/WbmTelphony/views/NumberingPlansMain.gml b/tests/umf/WbmTelphony/views/NumberingPlansMain.gml new file mode 100644 index 0000000..98e7b59 --- /dev/null +++ b/tests/umf/WbmTelphony/views/NumberingPlansMain.gml @@ -0,0 +1,262 @@ + + + + + + + + + + + NumberingPlansTitleKey + + + + + + AddKey + + + + ModifyKey + + + + DeleteKey + + + + + + + + + + NumberingPlansFunctionKey + + + NumberingPlansStartKey + + + NumberingPlansEndKey + + + NumberingPlansBaseKey + + + NumberingPlansNmtKey + + + NumberingPlansPrivKey + + + NumberingPlansFaxKey + + + + + + + + + + + + NumberingPlansPublicTitleKey + + + + + + AddKey + + + + ModifyKey + + + + DeleteKey + + + + + + + + + + NumberingPlansFunctionKey + + + NumberingPlansStartKey + + + NumberingPlansEndKey + + + NumberingPlansBaseKey + + + NumberingPlansNmtKey + + + NumberingPlansPrivKey + + + NumberingPlansFaxKey + + + + + + + + + + + + NumberingPlansRestrictedTitleKey + + + + + + AddKey + + + + ModifyKey + + + + DeleteKey + + + + + + + + + + NumberingPlansFunctionKey + + + NumberingPlansStartKey + + + NumberingPlansEndKey + + + NumberingPlansBaseKey + + + NumberingPlansNmtKey + + + NumberingPlansPrivKey + + + NumberingPlansFaxKey + + + + + + + + + + + + NumberingPlansPrivateTitleKey + + + + + + + AddKey + + + + ModifyKey + + + + DeleteKey + + + + + + + + + + NumberingPlansFunctionKey + + + NumberingPlansStartKey + + + NumberingPlansEndKey + + + NumberingPlansBaseKey + + + NumberingPlansNmtKey + + + NumberingPlansPrivKey + + + NumberingPlansFaxKey + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/umf/WbmTelphony/views/NumberingSettings.gml b/tests/umf/WbmTelphony/views/NumberingSettings.gml new file mode 100644 index 0000000..052b26a --- /dev/null +++ b/tests/umf/WbmTelphony/views/NumberingSettings.gml @@ -0,0 +1,95 @@ + + + + + + NumberingSettingsKey + + + + + + + InstallationNumbersTableTitleKey + + + InstallationNumberKey + + + InternationalPrefixKey + + + InternationalCodeKey + + + IntercityPrefixKey + + + IntercityCodeKey + + + RecallPrefixKey + + + AlternativeSystemCLIPKey + + + PrivateInstallationNumberKey + + + VPNEscapePrefixtoRemoveKey + + + + OKKey + + + + + + + EndOfDialingTableTitleKey + + + + AddKey + + + + DeleteKey + + + + ModifyKey + + + + + + PrefixKey + CounterKey + OpenCloseDialingKey + + + + + + DefaultCounterKey + + + ModifyKey + + + + + + + + + diff --git a/tests/umf/WbmUser/views/UserEdit.gml b/tests/umf/WbmUser/views/UserEdit.gml new file mode 100644 index 0000000..f2455b7 --- /dev/null +++ b/tests/umf/WbmUser/views/UserEdit.gml @@ -0,0 +1,268 @@ + + + + + + + + active + yes + no + + + + + + + detailsTab + + + + + + gender + mr + ms + mrs + + + lastName + firstName + intLastName + intFirstName + + + + + + + + + + change + + + + + + + + + title + + + + company + + + + details + + + + + + + group + + + add + + + + + assistant + + + + + language + + + timeZone + + + + + + + login + + + resetAccountPassword + yes + no + + + expirationDate + phoneDisplayName + + + resetPhonePassword + yes + no + + + + + + + + + + + + telephonyTab + + + + + + emailTab + + + + emailConfiguration + + + + + + + + applicationsTab + + createWorkspace + + + createResource + + + contact + + + calendar + + + task + + + + + webfile + + + + manageQuotas + + + + + + + administrationTab + + + + + directoryManagement + + + + telephonyManagement + + + webManagement + + + + fleetManagement + + + failsafeManagement + + + + IWPManagement + + + + + + selectGroup + + + + selectGroupButton + + + + + + + + + + + + + ok + cancel + + + + + + diff --git a/tests/umf/WbmUser/views/UsersAccounts.gml b/tests/umf/WbmUser/views/UsersAccounts.gml new file mode 100644 index 0000000..2cfeb71 --- /dev/null +++ b/tests/umf/WbmUser/views/UsersAccounts.gml @@ -0,0 +1,30 @@ + + + + + + + add + + + modify + + + delete + + + usersList + + name + login + phoneNumber + email + group + activated + + + \ No newline at end of file diff --git a/tests/umf/WbmUser/views/UsersDelete.gml b/tests/umf/WbmUser/views/UsersDelete.gml new file mode 100644 index 0000000..3a6471d --- /dev/null +++ b/tests/umf/WbmUser/views/UsersDelete.gml @@ -0,0 +1,24 @@ + + + + + + + deleteMessagePart1 + + deleteMessagePart2 + + + + ok + cancel + + + + + + \ No newline at end of file diff --git a/tests/umf/main.cpp b/tests/umf/main.cpp new file mode 100644 index 0000000..c15cbf6 --- /dev/null +++ b/tests/umf/main.cpp @@ -0,0 +1,162 @@ +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace std; +using namespace view; + +class myContent : public virtual p_PANEL_skel +{ + public: + myContent() {std::cout<<"create myContent\n";}; + ~myContent() {}; + protected: + // virtual void onAttramount(const std::string &v) {std::cout<<" Got ammount : "< 0 ) + { + PANEL_skel *st = static_cast(m_context.back().m_data); + st->Panel(v); + + } else { + PANEL_skel::Panel_sptr t(new PANEL_skel::Panel_type (v)); + //m_Panel.push_back(t); + m_PANEL.Panel(t); + } + */ + std::cout<<" Got Panel : "<(s.m_data)); + std::cout<<"postImpl to avoid removing from ... stack_size="<andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(p,"XMI"); + doc.parse(iss1); +} + +int test3(xsd::parser::ParserBase &p) +{ + std::string test="andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(p,"XMI"); + doc.parse(iss1); +} + + +int main(int argc,char **argv) +{ + printf("\n\tHello world ... test 1 sizeof p_VIEW=%d\n\n",sizeof(p_VIEW_skel)); + //p_VIEW_skel pxmi; + myXMI pxmi; + VIEW_skel v; +#if 1 + myContent pxmi_c; + + p_WINDOW_skel pwin; + p_WRAPPANEL_skel pwpanel,pwp2,pwp3; + p_RADIOGROUP_skel pradiog; + p_LABEL_skel l; + p_TITLE_skel title; + p_RADIO_skel rd; + p_BUTTON_skel b; + p_TEXTFIELD_skel tf; + myContent p1; + p_TABPANEL_skel tabp; + + title.Label_parser(l); + tabp.Panel_parser(p1); + p1.RadioGroup_parser(pradiog); /* well add radiog to second pa*/ + p1.TextField_parser(tf); + p1.Panel_parser(p1); + pradiog.Label_parser(l); + pradiog.Radio_parser(rd); + pxmi.Panel_parser(p1); /* Panel in View*/ + pxmi.Window_parser(pwin); + pxmi.WrapPanel_parser(pwpanel); + + pxmi_c.Panel_parser(p1); /* p1 is Panel in Panel from view second panel */ + pxmi_c.TabPanel_parser(tabp); + p1.TabPanel_parser(tabp); + p1.WrapPanel_parser(pwpanel); + p1.Title_parser(title); + pwin.Panel_parser(p1); + +#if 0 +#endif + pwpanel.Panel_parser(p1); +#if 0 +#endif + pwpanel.Button_parser(b); + test1("WbmUser/views/UserEdit.gml",pxmi); +#endif + pxmi.post(v); + std::cout< + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/x3d/CMakeLists.txt b/tests/x3d/CMakeLists.txt new file mode 100644 index 0000000..b0e3d03 --- /dev/null +++ b/tests/x3d/CMakeLists.txt @@ -0,0 +1,59 @@ +PROJECT(x3d) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + + +SET(X3D + "${xml-t_SOURCE_DIR}/../../data-models/x3d-3_0.xsd") + + +# + +XSD2CPP( + SOURCE ${X3D} + OUTPUT x3d-3_0 + ROOT-ELEMENT X3D + DEPS x3d-3_0deps.xml + XSDDIRS "./../\;../../data-models/\;" + ) + +#XSD2CPP_BOTH(${X3D} x3d-3_0 "" "./../\;../../data-models/\;" +# "tests/svg/nsmap.xml") + + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +# +# +# +ADD_EXECUTABLE(x3d_serialize + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/x3d-3_0.cpp + ) + +TARGET_LINK_LIBRARIES(x3d_serialize libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +# +#ADD_EXECUTABLE(xpdl_parse +# main_test.cpp +# ${CMAKE_CURRENT_BINARY_DIR}/parser/p_xpdl_10.cpp +#" ) + +#ARGET_LINK_LIBRARIES(xpdl_parse libxsd ${EXPAT_LIB} +# ${CPPUNIT_LIB} +# ${DL_LIB} +# ) + + diff --git a/tests/x3d/main_test.cpp b/tests/x3d/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/x3d/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/xmldsig/CMakeLists.txt b/tests/xmldsig/CMakeLists.txt new file mode 100644 index 0000000..10b9b94 --- /dev/null +++ b/tests/xmldsig/CMakeLists.txt @@ -0,0 +1,54 @@ +PROJECT(xmldsig) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + + +SET(XMLDSIG + "${xml-t_SOURCE_DIR}/../../data-models/xmldsig-core-schema.xsd") + + +# + +XSD2CPP(SOURCE ${XMLDSIG} + OUTPUT xmldsig-core-schema + XSDDIRS "./../\;../../data-models/\;" + ROOT-ELEMENT Signature +) + + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +# +# +# +ADD_EXECUTABLE(xmldsig + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xmldsig-core-schema.cpp + ) + +TARGET_LINK_LIBRARIES(xmldsig libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +# +#ADD_EXECUTABLE(xpdl_parse +# main_test.cpp +# ${CMAKE_CURRENT_BINARY_DIR}/parser/p_xpdl_10.cpp +#" ) + +#ARGET_LINK_LIBRARIES(xpdl_parse libxsd ${EXPAT_LIB} +# ${CPPUNIT_LIB} +# ${DL_LIB} +# ) + + diff --git a/tests/xmldsig/main_test.cpp b/tests/xmldsig/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/xmldsig/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/xpdl/CMakeLists.txt b/tests/xpdl/CMakeLists.txt new file mode 100644 index 0000000..0cce7aa --- /dev/null +++ b/tests/xpdl/CMakeLists.txt @@ -0,0 +1,65 @@ +PROJECT(xpdl) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + +#SET(SAXON CACHE STRING "~/Tools/saxon/saxon9.jar") +#SET(WSDL2 "${CMAKE_CURRENT_SOURCE_DIR}/../../wsdl2.xsl") +#SET(XSD2CPP "${CMAKE_CURRENT_SOURCE_DIR}/../../xsd2cpp.xsl") + +SET(XPDL + "${xml-t_SOURCE_DIR}/../../data-models/workflow/xpdl_21.xsd") + +SET(XPDL_10 + "${xml-t_SOURCE_DIR}/../../data-models/workflow/xpdl_10.xsd") + +# + +XSD2CPP( + SOURCE ${XPDL} + OUTPUT xpdl_21 + ROOT-ELEMENT + XSDDIRS "./../\;../../data-models/\;" + ) + +XSD2CPP_BOTH(${XPDL_10} xpdl_10 "" "./../\;../../data-models/\;" + "tests/svg/nsmap.xml") + + + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +# +# +# +ADD_EXECUTABLE(xpdl_serialize + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xpdl_10.cpp + ) + +TARGET_LINK_LIBRARIES(xpdl_serialize libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +# +ADD_EXECUTABLE(xpdl_parse + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_xpdl_10.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xpdl_10.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xpdl_21.cpp + ) + +TARGET_LINK_LIBRARIES(xpdl_parse libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + + diff --git a/tests/xpdl/main_test.cpp b/tests/xpdl/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/xpdl/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tests/xslt/CMakeLists.txt b/tests/xslt/CMakeLists.txt new file mode 100644 index 0000000..492d5d2 --- /dev/null +++ b/tests/xslt/CMakeLists.txt @@ -0,0 +1,80 @@ +PROJECT(xslt) + +FIND_LIBRARY(EXPAT_LIB expat "/usr/local/lib:/usr/lib") +INCLUDE_DIRECTORIES("${xml-t_SOURCE_DIR}/libxsd/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/") +INCLUDE_DIRECTORIES("/usr/local/include") + +INCLUDE(${xml-t_SOURCE_DIR}/../../rules/saxon.cmake) + + +SET(XSLT_SCHEMA + "${xml-t_SOURCE_DIR}/../../data-models/xslt20.xsd") + +SET(XSLT_SCHEMA10 + "${xml-t_SOURCE_DIR}/../../data-models/xslt.xsd") + + +# + +XSD2CPP(SOURCE ${XSLT_SCHEMA} + OUTPUT xslt20 + DEPS xslt20-deps.xml + ROOT-ELEMENT "transform" + XSDDIRS "\;./../\;../../data-models/\;/home/aeb/Devs/home/home/data-models/\;../../data-models/oxo_wsdl/\;./../\;${xml-t_SOURCE_DIR}/../../data-models/\;" +) + +XSD2CPP(SOURCE ${XSLT_SCHEMA10} + OUTPUT xslt + OPTS "polymorphic=\"yes\"" + XSDDIRS "\;./../\;../../data-models/\;/home/aeb/Devs/home/home/data-models/\;../../data-models/oxo_wsdl/\;./../\;${xml-t_SOURCE_DIR}/../../data-models/\;" +) + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + +# +# +# +ADD_EXECUTABLE(xsltlib20 + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xslt20.cpp + ) + +TARGET_LINK_LIBRARIES(xsltlib20 libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +ADD_EXECUTABLE(xsltlib + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xslt.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_xslt.cpp + TestCaseParseXsl.cpp + ) + +TARGET_LINK_LIBRARIES(xsltlib libxsd ${EXPAT_LIB} + ${CPPUNIT_LIB} + ${DL_LIB} + ) + +ADD_EXECUTABLE(xsltlibd + main_test.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/xslt.cpp + ${CMAKE_CURRENT_BINARY_DIR}/parser/p_xslt.cpp + TestCaseParseXsl.cpp + ) +SET_TARGET_PROPERTIES(xsltlibd + PROPERTIES + CLEAN_DIRECT_OUTPUT 1 + COMPILE_FLAGS "-DDEBUG -DPARSER_DEBUG=1" + ) +TARGET_LINK_LIBRARIES(xsltlibd xsdd ${CPPUNIT_LIB} + ${DL_LIB} + ${EXPAT_LIB} + ) + + + diff --git a/tests/xslt/TestCaseParseXsl.cpp b/tests/xslt/TestCaseParseXsl.cpp new file mode 100644 index 0000000..2fc6e94 --- /dev/null +++ b/tests/xslt/TestCaseParseXsl.cpp @@ -0,0 +1,106 @@ +#include +#include "TestCaseParseXsl.h" +#include +CPPUNIT_TEST_SUITE_REGISTRATION( TestCaseParseXsl); + +class TestResult : public virtual Transform::stylesheet_skel +{ + public: + std::string &version() {return me_attr_version.m_content;}; +}; + +void TestCaseParseXsl::setUp() +{ + m_template.match_parser(m_match); + m_template.param_parser(m_param); + m_root._template_parser(m_template); + m_xmlsourcepath= "./xmlsources/"; +} + +/** + * + */ +void TestCaseParseXsl::parse_01() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="" + "" + "" + ""; + //"COUCOU" + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"stylesheet"); + std::cout<<"Start Parsing ("<content().c_str()); + CPPUNIT_ASSERT_MESSAGE( r , s.name()[0]->content() == "andre"); +#endif +} + +/** + * + */ +void TestCaseParseXsl::parse_02() +{ + TestResult s; + char r[128]; + signed char c=(signed char)60; + std::string test="" + "" + "" + "" + "" + "" + "" + ""; + //"COUCOU" + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"stylesheet"); + std::cout<<"Start Parsing ("<andreMarc12"; + std::istringstream iss1(test,std::istringstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s.version()=="1.2"); +#endif +} + +/** + * + */ +void TestCaseParseXsl::parse_file_01int() +{ +#if 0 + basic_type::Simple_skel s; + std::ifstream iss1; + std::string filename = m_xmlsourcepath + "01basic_01int.xml"; + iss1.open(filename.c_str(),std::ifstream::in); + xsd::parser::expat::Document doc(m_root,"Simple"); + doc.parse(iss1); + m_root.post(s); + CPPUNIT_ASSERT(s._int()==454); +#endif +} diff --git a/tests/xslt/TestCaseParseXsl.h b/tests/xslt/TestCaseParseXsl.h new file mode 100644 index 0000000..052aadb --- /dev/null +++ b/tests/xslt/TestCaseParseXsl.h @@ -0,0 +1,41 @@ +#ifndef TESTCASE_PARSEXSL_H +#define TESTCASE_PARSEXSL_H + +#include +#include +#include +#include +#include + + +using namespace Transform; + +class TestCaseParseXsl : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE( TestCaseParseXsl ); + CPPUNIT_TEST(parse_01); + CPPUNIT_TEST(parse_02); +/* + CPPUNIT_TEST(parse_02); + CPPUNIT_TEST_FAIL(parse_03); + CPPUNIT_TEST(parse_file_01int); +*/ + CPPUNIT_TEST_SUITE_END(); + + public: + void setUp(); + protected: + xsd::parser::SimpleElement m_nbr,m_greeting,m__int,m__double,m__string; + p_variable_definition_skel m_param; + p_pattern_skel m_match; + p_named_template_skel m_template; + p_stylesheet_skel m_root; + + std::string m_xmlsourcepath; + protected: + void parse_01(); + void parse_02(); + void parse_03(); + void parse_file_01int(); +}; +#endif diff --git a/tests/xslt/main_test.cpp b/tests/xslt/main_test.cpp new file mode 100644 index 0000000..cd371b4 --- /dev/null +++ b/tests/xslt/main_test.cpp @@ -0,0 +1,36 @@ +#include + +#include +#include +#include +#include +#include +#include + + + +int main(int argc,char **argv) +{ + // Create the event manager and test controller + CPPUNIT_NS::TestResult controller; + + // Add a listener that colllects test result + CPPUNIT_NS::TestResultCollector result; + controller.addListener( &result ); + + // Add a listener that print dots as test run. + CPPUNIT_NS::BriefTestProgressListener progress; + controller.addListener( &progress ); + + // Add the top suite to the test runner + CPPUNIT_NS::TestRunner runner; + runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() ); + runner.run( controller ); + + // Print test in a compiler compatible format. + CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() ); + outputter.write(); + + return result.wasSuccessful() ? 0 : 1; + +} diff --git a/tr069-header.xsl b/tr069-header.xsl new file mode 100644 index 0000000..67c9c6f --- /dev/null +++ b/tr069-header.xsl @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + };&NL; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tr069-source.xsl b/tr069-source.xsl new file mode 100644 index 0000000..008315a --- /dev/null +++ b/tr069-source.xsl @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + Generate : + + + + + + + + + + &NL; + + &NL; + + + + + + + + ;&NL; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tr069-utils.xsl b/tr069-utils.xsl new file mode 100644 index 0000000..4e809e0 --- /dev/null +++ b/tr069-utils.xsl @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + tr069-utils: space-string-list: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tr069-utils: space-string-list: Built: + + + + + + + + + + + + + + + + + + diff --git a/tr069.xsl b/tr069.xsl new file mode 100644 index 0000000..005533f --- /dev/null +++ b/tr069.xsl @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &NL; + + &NL; + + + + + + + &NL; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uml14-2-xsd.xsl b/uml14-2-xsd.xsl new file mode 100644 index 0000000..e69de29 diff --git a/uml2dot.xsd b/uml2dot.xsd new file mode 100644 index 0000000..c793432 --- /dev/null +++ b/uml2dot.xsd @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + int x; + + + + public static void main(String[] args){ + } + + + + digraph g { + graph [ + rankdir = "LR" + ]; + + node [ + fontsize = "16" + shape = "ellipse" + ]; + + edge [ + ]; + + + + } + + + + + "" [ + label = " | | " + shape = "record" + ]; + + + + + + + + + + + + + "" -> "" [ + id = + ]; + + + + + diff --git a/uuid.xsl b/uuid.xsl new file mode 100644 index 0000000..7942200 --- /dev/null +++ b/uuid.xsl @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wsdl2.xsl b/wsdl2.xsl new file mode 100644 index 0000000..07dedec --- /dev/null +++ b/wsdl2.xsl @@ -0,0 +1,278 @@ + + + + + + + + + + + def.xsd + xsd + include + ./ + + _sptr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + yes + Import: + + + + + + + + + + + + + + + + + No definitions + + + + + + + + + yes + + + no + + + + + + + + + + + + + + + Start Process definitions wsdl:definitions + + + + + + Have wsdl:types + + + + + + + + + + + + + + + Copy in xsd:schema: + + + + + + + + + + + + Next Apply + + + + + + + Copy def : + + + + + + + Now Messages Have types defes + + + + + + Have types defes + + + + + + + + + + + + + Binding + + + + + + + + Unsupported binding + + + + + + + + + + + + Have operation types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wsdl2soap-cpp.xsl b/wsdl2soap-cpp.xsl new file mode 100644 index 0000000..088f82b --- /dev/null +++ b/wsdl2soap-cpp.xsl @@ -0,0 +1,306 @@ + + + + + + +]> + + + + + + + + + + + + + + + + + + #include <iostream> + #include "soap-encoding.h" + #include "soap-envelope.h" + #include " + + " + using namespace envelope; + //using namespace + + + + ; + #include < + + + // Bindding implementation : + + + + + + + + + + Binding: + + + + + /*do binding*/ + + + + + + + + Unsupported binding for now + + + + + + + document + + + + + + + + + + + + Mal formed wsd + + + + + + + + document + document + + + + + + + + + + + + + wsdl2-cpp-soap-op + /* * input: + + */ + void + + + + ) { + &INDENT;Envelope_sptr e(new Envelope_skel()); + &INDENT;Body_sptr b(new Body_skel()); + + + + + &INDENT;e->Body(b); + &INDENT;os<<Envelope_elem_type(e); + } + + + + document + + + /* output: + + */ void + + + + ) { + } + + + + document + + /* */ + + + + + document + document + &INDENT;/* Message + + */ + + + + + + + document + document + + + + + + + + + &INDENT;b->any((xmlSerializer *) + + ); + + + + document + document + &INDENT;//os<<" + + "; + + + + + + + + + + + + + + + + // Bindding implementation : + + + + + + + + + + + //service-operation wsdl:binding + + + + + + + + + //service-operation wsdl:operation + + (void *s, + + + + + + + + + + + + + + + , + + ) + { + + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT4;const + &INDENT4; + + + & + + + + diff --git a/wsdl2soap-header.xsl b/wsdl2soap-header.xsl new file mode 100644 index 0000000..7ca0147 --- /dev/null +++ b/wsdl2soap-header.xsl @@ -0,0 +1,294 @@ + + + + + + +]> + + + + + + + + + + + #ifndef + + #define + + + + #endif + + + + + + + + + + + + + class + + public: + + + + Parent name is: + + }; + + + + + /* wsdl-header-include + + + + + + /* wsdl-header-include + + + + + + + + + /* wsdl-header-include + + #include " + " + + + + /* wsdl-header-include + + + + + /* wsdl-header-include + + + + + + + + + + + + Why not here ! + /* Do operations */ + + + + Why not here ! + /* Do operations */ + + + + + + + void + + + + ); + + + + + + + + + + + + + + + + + + + + + + + + + + out + + + + + + + out + + + + + + + + + in + Have message: + + + + + + + + + + + + + in + , + const + + + + + + + + + + + + in + + + + + + + , + const + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ok, unsuported binding + + + + + + + document + Process Op + + class + + + &INDENT;public: + + + + + + + }; + + + + + + + + + /* Ok try to generate send method + + */ void send(std::ostream &os + + ); + + + + + + + /* Ok try to generate send method + + */ void receive(std::istream &is + + ); + + + diff --git a/wsdl2soap-js.xsl b/wsdl2soap-js.xsl new file mode 100644 index 0000000..c3fa9a4 --- /dev/null +++ b/wsdl2soap-js.xsl @@ -0,0 +1,194 @@ + + + + + + + + + + + + // javascript proxy for SOAP based web services + // by Matthias Hertel + /* */ + + + + + + + proxies. = { + url: "/", + ns: "" + } // proxies. + + + + + + + + + + + + + /* inputMessageName='', outputMessageName='' */ + + + /** */ + + proxies.. = function () { return(proxies.callSoap(arguments)); } + proxies...fname = ""; + proxies...service = proxies.; + proxies...action = "\"\""; + proxies...params = [ + + ]; + proxies...rtype = [ + + ]; + + + + + + + + + + + + + "" + + + + ":int" + + + + ":float" + + + ":date" + + + + ":bool" + + + + + ":s[]" + + + ":int[]" + + + ":float[]" + + + ":bool[]" + + + + + ":ds" + + + + + ":ds" + + + + + ":x" + + + + + ":ds" + + + + "" + + + + + + + + + + + + + + , + + + + + + + + + + + + + + , + + + + + + + + + + + + + + , + + + + + + + diff --git a/wsdl2soap-srv-hdr.xsl b/wsdl2soap-srv-hdr.xsl new file mode 100644 index 0000000..7ca0147 --- /dev/null +++ b/wsdl2soap-srv-hdr.xsl @@ -0,0 +1,294 @@ + + + + + + +]> + + + + + + + + + + + #ifndef + + #define + + + + #endif + + + + + + + + + + + + + class + + public: + + + + Parent name is: + + }; + + + + + /* wsdl-header-include + + + + + + /* wsdl-header-include + + + + + + + + + /* wsdl-header-include + + #include " + " + + + + /* wsdl-header-include + + + + + /* wsdl-header-include + + + + + + + + + + + + Why not here ! + /* Do operations */ + + + + Why not here ! + /* Do operations */ + + + + + + + void + + + + ); + + + + + + + + + + + + + + + + + + + + + + + + + + out + + + + + + + out + + + + + + + + + in + Have message: + + + + + + + + + + + + + in + , + const + + + + + + + + + + + + in + + + + + + + , + const + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ok, unsuported binding + + + + + + + document + Process Op + + class + + + &INDENT;public: + + + + + + + }; + + + + + + + + + /* Ok try to generate send method + + */ void send(std::ostream &os + + ); + + + + + + + /* Ok try to generate send method + + */ void receive(std::istream &is + + ); + + + diff --git a/wsdl2soap-srv-src.xsl b/wsdl2soap-srv-src.xsl new file mode 100644 index 0000000..088f82b --- /dev/null +++ b/wsdl2soap-srv-src.xsl @@ -0,0 +1,306 @@ + + + + + + +]> + + + + + + + + + + + + + + + + + + #include <iostream> + #include "soap-encoding.h" + #include "soap-envelope.h" + #include " + + " + using namespace envelope; + //using namespace + + + + ; + #include < + + + // Bindding implementation : + + + + + + + + + + Binding: + + + + + /*do binding*/ + + + + + + + + Unsupported binding for now + + + + + + + document + + + + + + + + + + + + Mal formed wsd + + + + + + + + document + document + + + + + + + + + + + + + wsdl2-cpp-soap-op + /* * input: + + */ + void + + + + ) { + &INDENT;Envelope_sptr e(new Envelope_skel()); + &INDENT;Body_sptr b(new Body_skel()); + + + + + &INDENT;e->Body(b); + &INDENT;os<<Envelope_elem_type(e); + } + + + + document + + + /* output: + + */ void + + + + ) { + } + + + + document + + /* */ + + + + + document + document + &INDENT;/* Message + + */ + + + + + + + document + document + + + + + + + + + &INDENT;b->any((xmlSerializer *) + + ); + + + + document + document + &INDENT;//os<<" + + "; + + + + + + + + + + + + + + + + // Bindding implementation : + + + + + + + + + + + //service-operation wsdl:binding + + + + + + + + + //service-operation wsdl:operation + + (void *s, + + + + + + + + + + + + + + + , + + ) + { + + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT4;const + &INDENT4; + + + & + + + + diff --git a/xsd2cpp-billing.xsl b/xsd2cpp-billing.xsl new file mode 100644 index 0000000..5b13939 --- /dev/null +++ b/xsd2cpp-billing.xsl @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-default-value.xsl b/xsd2cpp-default-value.xsl new file mode 100644 index 0000000..dc6cd5f --- /dev/null +++ b/xsd2cpp-default-value.xsl @@ -0,0 +1,267 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + not good ext type - + + + + + + + + + + not goodd - + + + + + + + + "" + + + + + + "" + + + "" + + + false + + + (long int)0 + + + 0.0 + + + (double)0.0 + + + "" + + + "" + + + "" + + + "" + + + "" + + + "" + + + "" + + + "" + + + "" + + + + + "" + + + "" + + + "" + + + + + + "" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (int)0 + + + (long int)0 + + + 0 + + + (long int)0 + + + (int)0 + + + 0 + + + (signed char)0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + diff --git a/xsd2cpp-gen.xsl b/xsd2cpp-gen.xsl new file mode 100644 index 0000000..586c7d3 --- /dev/null +++ b/xsd2cpp-gen.xsl @@ -0,0 +1,1247 @@ + + + + + + + + + + + + + + + + + +]> + + + + + _elem_type + + _attr_type + _attr_type_ + + _skel + _sptr + + _sequence + + + + + + + + + + unqualified + + + + + true + false + + + + + + + + + + + + + + + /** Element type without type */ + + struct + + + + + + + + + + + + }; + + + + + + + + + + + + + + + + unqualified + + + + + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /** Element type with type */ + + struct + + + + + + + + + + + + }; + + + + + + + + + + + + + unqualified + + + + + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if( r.m_wns ) { + + os<<" + + =\"" + + <<"\""; + + + + os<<" + =\"" + + <<"\""; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + (*(r.m_content))?"true":"false"; + + + + + + + + + + + + + &INDENT2;//New way for type definitions attribute gen-tree-hdr-type-member + + + + + &INDENT2;//New way for type definitions attribute gen-tree-hdr-type-member + &INDENT2;typedef + + + &INDENT2;//New way for type definitions attribute gen-tree-hdr-type-member + + + + + + &INDENT2; + + + // xsd2cpp-gen New way for type definitions + + + + + + + + + + + + + + &INDENT2; + + + // xsd2cpp-gen New way for type definitions + + + + + + + + + + + + + &INDENT2;// xsd2cpp-gen New way for type definitions + + &INDENT2;typedef + + &INDENT2;typedef + + &INDENT2;typedef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + &INDENT; + + + + + + + + + + + + + + + + + + + + + + + + + + &XSD; + + + &XSD; + + + + + + + + + + + + + + + + + + /*gen-tree-impl-element implementation of serialization method of element */ + + + &INDENT;if (r.m_wns) { + + &INDENT2;os<<"< + "; + + + &INDENT2;os<<" + + + + + + + \" + + \" + + + "; + + + &INDENT2;r.m_content->serialize_attributes(os); + + &INDENT2;os<<">"; + + + + + + &INDENT2;os<<"</ + >"; + &INDENT;} else { + + &INDENT2;os<<"< + "; + + &INDENT2;r.m_content->serialize_attributes(os); + + &INDENT2;os<<">"; + + + + + &INDENT2;os<<"</ + >"; + &INDENT;} + &INDENT;return os;&NL;} + + + + + + + + + + + + unqualified + + + + + + 1 + + + + + + 1 + + + + &INDENT;/* gen-tree-impl-serialize TO BE TREATED new way scope: + */ + + + + + + + &INDENT2;os<< + + + + + + + + + &INDENT2;os<< + + + + + &INDENT;if (obj. + + &INDENT2; + _sptr s( + + ); + + + + &INDENT;} + + + + + + + + 1 + + + + + unqualified + + + + + + 1 + + + + + + + + + + &INDENT;/* gen-tree-impl-serialze + + */ + + + + + + + + &INDENT2;os<< + + + + + + + + + &INDENT2;os<< + + + + + &INDENT;if (obj. + + &INDENT2; + _sptr s( + + ); + + + + &INDENT;} + + + + + /* trait any*/ + + + + + + &INDENT;os<<" + + =\""<<me_attr_ + + <<"\""; + + + + + + + + + + + + 1 + + + + + unqualified + + + + + + + + + + + + + + //gen-tree-impl-setget + + + + + + + + } + + + + } + + + + + + + + + } + + + + } + + + + + + + + + } + + + + } + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + unqualified + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + //gen-tree-impl-setget + + + + + + + + } + + + + } + + + + + + + + + } + + + + } + + + + + + + + + + + + + } + + + + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Any type seter and getter + + + + + + + 1 + + /* gen-tree-impl-setget + + + + + + + + + 1 + + + + + unqualified + + + + // gen-tree-impl-set-get + + + #if 0 + + + + + + + #endif + + + + + + + 1 + + + + + unqualified + + + // eltype + + + + + + + + + + 1 + + + + + unqualified + + + + + // gen-tree-impl-setget eltype + + + + + + + + + + + + + + + + + + + + + + + no + + + + + + + + + + + + + ns == "" + ns.empty() + + + + &INDENT;// scope= + + + &INDENT;if (name == "" && + + &INDENT;{ + + &INDENT2;if ( this->m_ + !=0) &INDENT2;{ + + &INDENT3; + + + + + + + + + + + + + &INDENT3;this->m_ + + + // Element is empty + + + &INDENT3;this->onEl + + + &INDENT3;if ((m_context.size() > 0) && (m_context.back().m_data!=NULL)) + &INDENT3;{ /* recursion active */ + &INDENT4; + + &INDENT3;} else + &INDENT3;{ + &INDENT4; + &INDENT3;} + &INDENT2;} + &INDENT2;return true; + &INDENT;} + + + + + + + + + + + + + + + + #if 1 + void + + onEl + + + + + + + + + + #ifdef DEBUG + &INDENT;std::cout<<" + + "<<v<<"\n"; + #endif + + &INDENT;if ( (m_context.size() > 0 && m_context.back().m_data !=NULL)) &INDENT;{ + &INDENT2; + + + + &INDENT2;//st-> + + + + &INDENT2;st-> + + + + &INDENT2; + &INDENT;} else { + &INDENT2; + + + + + + + + + + + + + + + + + + + + + + &INDENT2; + + &INDENT2; + + + + &INDENT;} + } + #endif + + + + + + + + yes + + + + + + + + + + + + + + + + + + + + + + + + + + + + //gen-parser-impl-event-begin + + + void + + onAttr + + + #ifdef DEBUG + &INDENT;std::cout<<" + + "<<v<<"\n"; + #endif + + + &INDENT;if ( (m_context.size() > 0) &&(m_context.back().m_data!=NULL) ) &INDENT;{ + &INDENT2; + + &INDENT2;st-> + + &INDENT2; + &INDENT;} else { + + &INDENT2; + + + &INDENT;} + + } + + + diff --git a/xsd2cpp-make-deps-3.xsl b/xsd2cpp-make-deps-3.xsl new file mode 100644 index 0000000..a5f4e75 --- /dev/null +++ b/xsd2cpp-make-deps-3.xsl @@ -0,0 +1,170 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-make-deps-class.xsl b/xsd2cpp-make-deps-class.xsl new file mode 100644 index 0000000..4ca35a6 --- /dev/null +++ b/xsd2cpp-make-deps-class.xsl @@ -0,0 +1,377 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + class + + element name and type Visited = + &INDENT; + + + + + + + + + + + + + + class + + + element + &INDENT; + + + + + + + + + &INDENT; + apply simple(complex)Types ... + &INDENT; + + + + + + + + + + + + + + + + + + + + class + + element + &INDENT; + + + + + + + + + + + + + + + + + + + + + + + + + + + class + + + + + + + + + + class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class + + + + + + + class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class + + + + + + + + + + + + + + + + + class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class + + + + PROCESS GROUP () REF + + + + + + + + + + + class + + + + + + + + + + class + + + + + + + + + + class + + + + + + + + + + + diff --git a/xsd2cpp-make-deps-deep.xsl b/xsd2cpp-make-deps-deep.xsl new file mode 100644 index 0000000..59ea072 --- /dev/null +++ b/xsd2cpp-make-deps-deep.xsl @@ -0,0 +1,564 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-make-deps-doon.xsl b/xsd2cpp-make-deps-doon.xsl new file mode 100644 index 0000000..32bb4f7 --- /dev/null +++ b/xsd2cpp-make-deps-doon.xsl @@ -0,0 +1,54 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-make-deps-on.xsl b/xsd2cpp-make-deps-on.xsl new file mode 100644 index 0000000..67cd2b6 --- /dev/null +++ b/xsd2cpp-make-deps-on.xsl @@ -0,0 +1,306 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + on + + + + + + + + + + + + + + + Unsuported namespace + + + + + + + + + + + + + on + + + + + + + + + + + + + + Unsuported namespace + + + + + + + + + on + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + on + + + + + + + + + + + + + + + + + on + + + + + + + + + + on + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + on + + + + + + + + + + + + + + Unsuported namespace + + + + + + + + + + + + + + on + + + + + + + + + + + + + + + + + + + + + + + on + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuported namespace + + + + + + + + + diff --git a/xsd2cpp-make-deps.xsl b/xsd2cpp-make-deps.xsl new file mode 100644 index 0000000..a094fb2 --- /dev/null +++ b/xsd2cpp-make-deps.xsl @@ -0,0 +1,1264 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + XMI + no + yes + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Processing + + + + + + + + + + + + + + + + Processing NEXT CHOICE/SEQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Processing restriction 1 + + + + + + + + + Processing restriction 2 + + + + + + + + Processing extension 1 + + + + + + + + + Processing extension 2 + + + + + + + + + + + + + + + + + + + + Processing group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NAMED NOT CONTAINED ELEMENT + + + + + + OK HERE visited= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default ELEMENT NAME and TYPE not processed + + + + + + + + + + + + + + + + + + + + + + Default none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuported namespace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuported namespace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unsuported namespace + + + + + + + + + + + + + + + + + + + + + + PROCESS class + + + + + + TERMINAL CASE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROCESS on + START Apply template on + + + + END Apply template on + + + DONT PROCESS on + + + + + + + diff --git a/xsd2cpp-parser-hdr-event.xsl b/xsd2cpp-parser-hdr-event.xsl new file mode 100644 index 0000000..d915803 --- /dev/null +++ b/xsd2cpp-parser-hdr-event.xsl @@ -0,0 +1,575 @@ + + + + "> + + + + + + +]> + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + + + + + + /* Integrated simple Content for event */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* parse-skel-event + + + + &INDENT2;/* parse-skel-event + + + + + + + + + + + + + + + + + + + + + /* extension */ + + + + + + + + + + + + + + + + + + + /* complexType */ + + + xsd:extention + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/*TO BE CODED + + */ + &INDENT2;virtual void onAttr + + &v); + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;// parser-hdr-event + + + &INDENT2;virtual void onAttr + + &v); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* attribute with ext ref + + &INDENT2;// class= + + &INDENT2;virtual void onAttr + + + + + + + + + + + + &INDENT2;virtual void onAttr + + + + + + + + + + xsd2cpp xsd:attribute Foreign namespace ref + + + + xsd2cpp xsd:attribute Not Yet good + + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + + &INDENT2;/* parser-hdr-event + */ + + + + + + + + + + + + + + + + + &INDENT2;virtual void onEl + ( + &v); + + + &INDENT2;virtual void onEl + ( + &v); /* no ns */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* Correct: Element with no type need the scope + + !!*/ + &INDENT2;virtual void onEl + ( + &v)/* {}*/; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;virtual void onEl + ( + &v) ; + + + + + + + + &INDENT2;virtual void onEl + ( &v) ; + + + &INDENT2;virtual void onEl + ( + &v) ; + + + + + + + &INDENT2;virtual void onEl + ( &v) ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-parser-hdr-member.xsl b/xsd2cpp-parser-hdr-member.xsl new file mode 100644 index 0000000..736ba2a --- /dev/null +++ b/xsd2cpp-parser-hdr-member.xsl @@ -0,0 +1,457 @@ + + + + "> + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ERROR not specification conforment + + + + + + + + + + + + + + + + + + + + + + + + + + ERROR not specification conforment + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;/*parser-hdr-member xsd:group + + */ + + + + + + + + + xsd-parser-header xsd:group parser-hdr-member ERROR: not yet treated + + + + + + + + &INDENT;/*parser-hdr-member xsd:group + + */ + + + + + + + + + + + + + + + + + + + + + + + _sequence + _type + + + + + + &INDENT;//parser-hdr-member element name type + + + + + + + + + + &INDENT2;::xsd::parser::SimpleElement *m_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _sequence + _type + + + &INDENT;//parser-hdr-member element name + + + + + + + + + + + + + + + + + _sequence + _type + + + + + + + + + + + WARNING RECURSION DETECTED: + + &INDENT;//parser-hdr-member element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* parse-hdr-member xsd:attributeGroup */ + + + + + + + + + + &INDENT2;/* parse-skel xsd:attributeGroup */ + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;//parser-hdr-member + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;//parser-hdr-member attribute name no type + + + + + + + + + &INDENT2;//parser-hdr-member attribute @name= + + + + + + + + + + + + + + + &INDENT2;/* parse-hdr-member xsd:attribute + */ + + + + + + + + + + ; + + + + + ; + + + + + + + ; + + + + + Unmanaged Attribute type + + + + + + + diff --git a/xsd2cpp-parser-header.xsl b/xsd2cpp-parser-header.xsl new file mode 100644 index 0000000..a796ecb --- /dev/null +++ b/xsd2cpp-parser-header.xsl @@ -0,0 +1,1200 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + + Create - + + + #ifndef + + #define + #include <string> + #include <iostream> + #include <xsd/xsd.h> + /* Include imports */ + + + namespace + + + { + + + + + + + + + + + + + + class Factory { + public: + &INDENT; + &INDENT;Factory(); + &INDENT;~Factory(); + &INDENT;void *create(std::string &tp); + &INDENT;void register_(std::string &tp); + protected: + + }; + + + } + #endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + Missing : + + + + Missing : + + + + Double : + + + + + + + + + + + + + + + + + + + + + + + + + + + + class + class + + + + + + class + class + + + + + + + + + + + + + + + + + + + + + typedef + + + + + + + + + + + + + + class + class + + + + + + + + + + + + + + + + + + + + + + + + typedef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + //parse-hdr-root + + + + //parse-hdr-root + + + + + + class + { &INDENT;public: + + + + }; + + + + //parse-hdr-root + + + + + + + + + + + + + + + + + + + /* parse-hdr-root + + + + + + + + + + + /* parse-hdr-root + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + /** + + + + + */ class + + : public /* + + + + No ELement here + + + + + + + + + + + + xsd::parser::ComplexElement + + + + + + + + bad inheritance + + + { &INDENT;public: + + &INDENT2;// virtual pre() function, to be emplemented &INDENT2;// + &INDENT2;void pre(); + + + &INDENT2;virtual void preInternal() {}; + &INDENT2;virtual void postInternal() {}; + + + &INDENT2;// virtual preInternal() function, to be emplemented &INDENT2;// + &INDENT2;void preInternal() ; + &INDENT2;// virtual postInternal() function, to be emplemented &INDENT2;// + &INDENT2;void postInternal() ; + + + + + + ( /*parser factory*/); + &INDENT2;~(); + + + &INDENT2;bool startElementImpl(const std::string &ns,const std::string &name,const std::string &attributes); + &INDENT2;bool endElementImpl(const std::string &ns,const std::string &name); + + &INDENT2;// Attribute processing &INDENT2;// + + &INDENT2;bool AttributeImpl(const std::string &ns,const std::string &name,const std::string &val); + + + &INDENT2;virtual bool _CharacterImpl(const std::string &c) {m_str+=c;return true;}; + + + &INDENT2;virtual void post( + + + &v) ; + + + &v) ; + + + &v) ; + + + public: + + &INDENT2;// parser-hdr-event processing + + + + + + + + + + &INDENT2;// parse-skel processing + + + + + + + + + + + + + &INDENT;protected: + &INDENT2;//parser-hdr-member + + &INDENT2; + + + + + + + }; + + + + + + + + + + + + + + + + + + + + xsd::parser::ComplexElement + + + + + + + + + + + + + xsd::parser::SimpleElement + + + + + + + + + + + xsd::parser::SimpleElement + + + + + xsd::parser::SimpleElement + + + xsd::parser::SimpleElement + + + + TRY: + _skel + + + + + + + Failed + + + + + + + + + + + + + + + + + Unsuported restriction + + + + + + + + + + + + + + + + + + + + xsd::parser::SimpleElement + + + + + + xsd::parser::SimpleElement + + + Not yet implemented csd:extension with other ns + + + + + + + + + + + + + + + xsd::parser::SimpleElement + + + _skel + + + + + + + Not yet implemented csd:extension with other + + + + + + Not yet implemented + + + + + + + + + + xsd::parser::ComplexElement + + + xsd::parser::SimpleElement + + + Untreated case : + + + + + + + + + + + Should not call attribute and attributeGroup here + + + + + + + + + + + + + + + + + + + + + + + + + // - + + + + + + + + + + xsd2cpp-parser xsd:complexType .... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MUST BE CODED + + + + MUST BE CODED + + + + + + + + + + + + + + xsd::parser::SimpleElement + Warning: simpleType restriction + //Warning: Not yet impl simpleType restriction + + + + + + + + + + + + + + + + Warning: Not yet implemented simpleContent extension + &INDENT2;//parse-skel-simpleContent + + + + + + + + + Warning: Not yet implemented complexContent restriction + + + + + + Warning: Not yet implemented complexContent extension + + + + + + + + &INDENT2;/* parse-skel xsd:attribute + */ + + + + + + + + + + + + + std::string + + + + + &INDENT2;/* parse-skel + */ + + + + + + + + + + + + + + + + + + &INDENT2;/* parse-skel xsd:attribute + */ + + + + + + + + + ; + + + + + + + + + + + + ; + + + + + + + + + + Unmanaged Attribute type + + + + + + + + &INDENT2;/* parse-skel xsd:attributeGroup */ + + + + + + + + + + + + + + + + + NO YET CODED anyAttribute + + + + + &INDENT2;/* parse-skel xsd:choice */ + &INDENT2;bool choice_ + + (unsigned long &state,unsigned long &count, + std::string &ns,std::string &name,bool start=true); + + + + + + + + &INDENT2;/* parse-skel + + */ + + + + + + + + + + + + + + &INDENT2;/* parse-skel + + */ + + + + + + + + &INDENT2;/* parse-skel + + */ + &INDENT2;//bool sequence_0(unsigned long &state,unsigned long &count, + std::string &ns,std::string &name,bool start=true); + + + + + + + + + + /* xsd::any m_any; */ + + + + + + + + + + + xsd-parser-header parse-skel + + &INDENT2;// parse-skel What I am suposed to do @ref= + + + {;}; + + + + + + + + + + // Element no type + + + + + + + + + + + + &INDENT2;typedef ::xsd::parser::SimpleElement + + + + + + {;}; + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MUST NEVER OCCUR + // cpp_type=null + + + + + + + &INDENT2;//typedef + ; + + + + ; public: + + + ; public: + + + + {;}; + + + + + + {;}; + + + + + + ; + + {;}; + + + + + + + + /* Foreign namespace */ + ; + + + + ; public: + + + ; public: + + + + {;}; + + + Warning: Need to be checked xsd-parser:Element lake other ns space + ; + + ; public: + + {;}; protected: + + + + + + + + + + + + + + + + + std:: + + diff --git a/xsd2cpp-parser-src-attribute.xsl b/xsd2cpp-parser-src-attribute.xsl new file mode 100644 index 0000000..685bcc3 --- /dev/null +++ b/xsd2cpp-parser-src-attribute.xsl @@ -0,0 +1,295 @@ + + + + + + + +]> + + + + + + + + + + + + + xsd2cpp-parser Process Attr parsing + bool + :: + AttributeImpl(const std::string &ns,const std::string & + name,const std::string &val) { + + + + + + std::cout<<" + + + + "<<m_context.size()<<std::endl; + + + "<<"No stack"<<std::endl; + + + + + //std::cout<<"Attribute impl \n"; + + + + return false; + } + + + + + + + + + /* xsd:complexContent */ + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;/* parser-src-attribute + + + + + + + + + + + + + + ns.empty() + + + + + + + + + &INDENT;if (name == " + " && + + ) { + + + xsd::parser::SimpleElement s; + + + + + + + + + + + Don't know + + + &INDENT2;s.preImpl(); + &INDENT2;s._Characters(val); + + + + + + + + + + + + + + + + + + + + + + &INDENT2;this->onAttr + (tmp_); + &INDENT2;//std::cout<<"Process attribute + val="<<val<<std::endl; return true; } + + + + + + + + + + + + + + + + + + + + ns.empty() + + + + + + + + + &INDENT;/* parser-src-attribute + + + &INDENT;if (name == " + " && + + ) &INDENT;{ + + + xsd::parser::SimpleElement s; + + + + + + + + + + + + + xsd::parser::SimpleElement s; + + p_ + + + + + p_ + + + + + + + + + + + Don't know + + + + + + + + + + + + + + &INDENT2;s.preImpl(); + &INDENT2;s._Characters(val); + + + + + + + + + + + + + + + + + + + + + + &INDENT2;this->onAttr + (tmp_); + &INDENT;} + #if 0 + + + + Error to be coded lref + + + + Error to be coded + + + + I don't know how to treat this case + + + #endif + + + + diff --git a/xsd2cpp-parser-src-end.xsl b/xsd2cpp-parser-src-end.xsl new file mode 100644 index 0000000..898afc8 --- /dev/null +++ b/xsd2cpp-parser-src-end.xsl @@ -0,0 +1,305 @@ + + + + + + + +]> + + + + + + + + &INDENT;// simpleContent TO Be coded + + + + &INDENT;// complexContent TO Be coded + + + + + + + + + + + + + + &INDENT;// parser-src-end + + + + + + + + + + + + + + &INDENT;/* parser-src-end + + + + + + + + + + + + + + + + &INDENT;/* parser-src-end + + + + + + + + + + + + + + + + &INDENT;/* parser-src-end + + + + + + + + + + + + + + + + + + + + + + + + + + + ns == "" + ns.empty() + + + + + + + + + + &INDENT;/* parser-src-end + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + ns.empty() + + + ns.empty() + + + + + + + + + + + yes + no + + + + + + + + + + + + 1 + + + + + + + + + + + + + ns.empty() + + + ns.empty() + + + + + + + + + + + + + + + + + + + + + + + + + + STOP + + + + + #if 0 + &INDENT;if (name == "" && + + { + //std::cout<<"Yes end element + "<<std::endl; + &INDENT;if ( this->m_ + !=0) { + + + &INDENT3;this->m_ + + + + &INDENT2;this->onEl + + &INDENT2;if (s.m_parser) + &INDENT2;{ + &INDENT3;s.m_parser->post(); + + &INDENT3;if (s.m_data) { + + + + + + + + + + + + + + &INDENT2;} + &INDENT;} + + &INDENT2;//std::cout<<" read + : "<< + + <<std::endl; + &INDENT2;} + &INDENT2;return true; + &INDENT;} + #endif + + + + + + + + + + + + diff --git a/xsd2cpp-parser-src-event.xsl b/xsd2cpp-parser-src-event.xsl new file mode 100644 index 0000000..3829d30 --- /dev/null +++ b/xsd2cpp-parser-src-event.xsl @@ -0,0 +1,494 @@ + + + + + + + +]> + + + + + + + + + // parser-src-event + + + + + + + + // parser-src-event + + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + + + no + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + + + no + + + + // Bad parent + + + + + + + + + // parser-src-event + + + + + + + // parser-src-event + + + + + + + + // parser-src-event + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + + + + + + /** parser-src-event + + + + + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /** parser-src-event + + + + */ + + + + + + + + + + + + + + + + + + + + + + + + + + // parser-src-event + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /** parser-src-event + + + + + */ + + + + + + + + + + + + + + + + + + yes + // parser-src-event + + + + + + + + + + + + yes + + + + + + + + + + + yes + + + + + + + + // parser-src-event + + + + xsd-parser WARNING attribute without + + namespace + // Warning attribute without namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // Foreign namespace attributes. + + + + + + + + + + yes + + + + // parser-src-event + + + + + + + + + + + + + yes + + + + // parser-src-event + + + + + + + + + + + diff --git a/xsd2cpp-parser-src-post.xsl b/xsd2cpp-parser-src-post.xsl new file mode 100644 index 0000000..5cba0df --- /dev/null +++ b/xsd2cpp-parser-src-post.xsl @@ -0,0 +1,275 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + _skel + + + + + + + + + + + + + + + // mode parser-src-post with name : + + void + :: + post( + + + &val) { + + + + + + + + + std::cout<<" + + "<<"\n"; + + + + + + + + + + + + + + + + + + } + + + + + &INDENT;/* parser-src-post + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;/* parser-src-post + + + + + + &INDENT;this->::xsd::parser::SimpleElement::post(v); + + + + + + + + + /*ERROR not yet treated */ + + + + + &INDENT;this->::xsd::parser::SimpleElement::post(v); + + + + xsd2cpp-parser ERROR restriction or extension not allowed her + + + + + + + &INDENT;val=m_str; // from xsd:list + + + + + + + + + + + + + + + + + + /* parser-src-post MUST TREAT UNION for + + + + + + + + + + xsd2xpp-tree-header xsd:field with union-attributes @type= + + + + + + + &INDENT;if ( 1 ) { + + &INDENT2;this->::xsd::parser::SimpleElement::post(v); + &INDENT2;val = v; + &INDENT;} + + + + + + + + + + /*Process ref: + + */ + + + + + + + + + + 1 + + + + + + &INDENT;val. + + + + + + + + + + + + + + + + &INDENT;val.attr_ + + + + + + + + + + diff --git a/xsd2cpp-parser.xsl b/xsd2cpp-parser.xsl new file mode 100644 index 0000000..5fd3ef5 --- /dev/null +++ b/xsd2cpp-parser.xsl @@ -0,0 +1,1405 @@ + + + + + + + +]> + + + + + + + + ./test + generateParseSkel: dir= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /*found*/ + + + #include < + + > + #include < + + > + + + Not yet supported + + + WARNING no schema location + + + /* Document exists*/ + #include < + + > + #include < + + > + + + Document does not Exists : + /* Document does not exists exists*/ + #include < + + > + #include < + + > + + + + + + + + + + + #include < + + > + + + + + + + + + + + Generate Header file + + + #ifndef + + #define + #include <string> + #include <iostream> + #include <xsd/xsd.h> + + + + class + class + + + /*TODO: Add missing includes for generateParseSkel + */ + + + + + #include <> + + + #include <> + + + + + + + #endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #include <iostream> + #include <xmlSerialize.h> + /* Include imports */ + + + #include < + > + #include < + > + namespace + + { + + + + + + + } + + + + + + + + + + xsd2cpp Generate Source parsing + + + + #include <iostream> + #include <xmlSerialize.h> + #include < + _tskel.h> + #include <p_ + .h> + + /*TODO: Add missing includes */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* GENERATE CODE for element + + + + + + + + + + + + + + + + /* GENERATE CODE for element + + + + + + + + + + + + + /* class-parser-root + + + + + + + + + + + + + + + + + + + + + + + + /* class-parser-root + + + + + + + /* class-parser-root + + + + + + + /* class-parser-root + + + + + + + /* class-parser-root + + + + + + + + + + /* class-parser-root + + + + + + + + + + /* class-parser-root + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + :: + + () { + + + + + std::cout<<" + + \n"; + + + + + + + + + + } + + + + + + + + + + + + Error simpleContent only has complexType as parent + + + + + + + + + + + + + + + + + + + /*xsd:element[@ref] ... parse-tree */ + + + + + + + + + + + + _parser = 0; + + + + + + + + + + + + + + + + + + + + + + + + _parser = 0; + + + + + + + + + + + + + + + + _parser = 0; + + + + + + + + + + + ::~ + + () { } + + + + + + + + + /* Passed by here to be computed */ + + + + + &INDENT;State &s(m_context.back()); + + + &INDENT;State &s(m_context.back()); + + + + + + + + + + To be finalized + To be finalized + + &INDENT;State &s(m_context.back()); + + + + + + + + + + + + + + + &INDENT;State &s(m_context.back()); + + + + + + + + /** + */ + bool :: + startElementImpl(const std::string &ns,const std::string &name, + const std::string &tp) { + + + + + + std::cout<<" + + "<<name<<"\n"; + + + + + + + + + + &INDENT;/* class-parser-skel-source-start Before choice and sequence + + + + + + + return false; } + + bool + :: + endElementImpl(const std::string &ns,const std::string &name) { + + + + + std::cout<<" + + "<<name<<"\n"; + + + + + + + + + return false; + } + + + + + + + + + + + xsd2cpp-parser: xsd:simpleType not yet coded + + + + + + xsd2cpp-parser: xsd:complexType not yet coded + + + + + + xsd2cpp-parser: xsd:simpleContent not yet coded + + + + + + + + + + + + + + + + + + + + + + &INDENT;if (this->::xsd::parser::SimpleElement::startElementImpl(ns,name,tp)) + &INDENT2;return true; + + + &INDENT;/* + */ + &INDENT;std::cout<<"class-parser-skel-source-start-simpleConent NOT YET CODED + + "<<std::endl; + + + xsd:restriction not yet coded for + + + + + + + + + + + + + xsd-parser xsd:extension not yet completely coded for + + + &INDENT;if (this->::xsd::parser::SimpleElement::startElementImpl(ns,name,tp)) + &INDENT2;return true; + + + &INDENT;if (this->::xsd::parser::SimpleElement::startElementImpl(ns,name,tp)) + &INDENT2;return true; + + + &INDENT;/* + */ + std::cout<<"NOT YET CODED xsd:extension start + element"<<std::endl; + + + xsd:restriction not yet coded for + + + + + + + + + + + xsd:restriction not yet completelly coded for + &INDENT;/* &INDENT;if (this->:: + + ::startElementImpl(ns,name,tp)) + return true; + */ + + + + + + + + + + + + xsd:restriction not yet completelly coded for + + if (this-> + ::startElementImpl(ns,name,tp)) + return true; + + + + + + + + + + + + + + + + + + xsd:restriction not yet coded for + + + xsd:restriction not yet coded for + + + + + + + + + + + + + + + + /* Start to handle Extension ... */ + if (this->::xsd::parser::SimpleElement::startElementImpl(ns,name,tp)) + return true; + xsd:extension ontent not yet coded + + + + xsd:extension ontent not yet coded + + + + xsd:extension ontent not yet coded + + + + + + + + + &INDENT;/* class-parser-skel-source-start + + + + + + + + + + &INDENT;/* class-parser-skel-source-start + + + + + + + + + + + &INDENT;/* Groupe ref */ + + + + + + + + + + + + + + + + + + /* Any Element To be coded*/ + + + + + + + + + + + + + + + &INDENT;/* xsd2cpp-parser class-parser-skel-source -start element ref */ + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + ns.empty() + + + ns.empty() + + + + + + + xsd2cpp-parser Process EL parsing + + &INDENT;if (name == "" && + + ) &INDENT;{ + &INDENT2;s.m_parser = this->m_ + &INDENT2;if (s.m_parser != 0) { + &INDENT3;s.m_parser->pre(); + &INDENT2;} else { + &INDENT3;std::cout<<"Warning no parser + + "<<std::endl; + &INDENT2;} + &INDENT2;//std::cout<<"Yes found element + + "<<std::endl; + &INDENT2;return true; + &INDENT;} + + + + + + 1 + + + + + + + + + + + + + + ns.empty() + + + ns.empty() + + + + + + + + + + + + + + + + + + + + + + + + xsd2cpp-parser Process EL parsing + + &INDENT;if (name == "" && + + ) &INDENT;{ + s.m_parser = this->m_ + &INDENT2;if (s.m_parser != 0) { + &INDENT3;s.m_parser->pre(); + &INDENT2;} else { + &INDENT3;std::cout<<"Warning no parser + + "<<std::endl; + &INDENT2;} + &INDENT2;//std::cout<<"Yes found element + + "<<std::endl; + &INDENT2;return true; + &INDENT;} + + + /* Miss stated .... */ + + + + + + + + + + + + + + void + + + + + + + std::cout<<" + + "<<m_context.size()<<std::endl; + + + + + + &INDENT;m_context.back().m_data= Factory::create( + + + + &INDENT;m_context.back().m_data= new + + + + } + + + + + + + + + + + + + void + + + + + + + + std::cout<<" + + "<<m_context.size()<<std::endl; + + + + &INDENT;m_str =""; + } + + + + + + + + + + + + + + + + void + + + + + + + std::cout<<" + + "<<m_context.size()<<std::endl; + + + &INDENT;if ((m_context.size()>0) && (s.m_data != NULL)) &INDENT;{ + &INDENT2; + + + + &INDENT2;if ((m_context.size()>1)) &INDENT2;{ + &INDENT3; + + + &INDENT3;std::cout<<"RECURSION: + + &INDENT3;"<<m_context.size()<<std::endl; + + &INDENT2;} &INDENT2;else &INDENT2;{ + + &INDENT2;} + &INDENT2;delete v; + &INDENT2;s.m_data = NULL; + &INDENT;} + } + + + + + + + + + + bool + + ::choice_0(unsigned long &state,unsigned long + &count,std::string &ns,std::string &name,bool start) { + switch(state) { + + + + }/*end switch */ + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* produce a sequence validation function */ + + #if 0 + ::sequence_0(unsigned long &state,unsigned long + &count , std::string &ns,std::string & n,bool start=true) { + switch (state) { + + } + } #endif + + + + + + case + : break; + + + + + + + case UL: + if (name == " + ") { return 0; } break; + + + /* TODO */ + + + + + + /*xsd2cpp-parser choice-source xsd:sequence */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + MUST GENERATE SUBCLASS 1: + + + + + + + + + + + + + MUST GENERATE SUBCLASS: + + + + + + + + + + + MUST GENERATE SUBCLASS 3: + + + + + + + + + + + /* here 1.1*/ + + + + + + + + + + MUST GENERATE SUBCLASS 5: + /* here 1*/ + + + + + + + /* here 2*/ + MUST GENERATE SUBCLASS 6: + + + + diff --git a/xsd2cpp-tpl.xsl b/xsd2cpp-tpl.xsl new file mode 100644 index 0000000..0ab219a --- /dev/null +++ b/xsd2cpp-tpl.xsl @@ -0,0 +1,413 @@ + + + + "> + + + + + + + +]> + + + + + + + + + + %MODE% + + + + + + + %MODE% + + + + + + + %MODE% + + + + + yes + + + + + + + + + + + + + + + + + %MODE%-do-include should not enter here + + + + + + + yes + + + no + + + + + + yes + + + + + + + + + + + + + %MODE% + + + + + + + + + + + %MODE% + + + + + + + + + + + + + %MODE% + + + + + + + + + + + %MODE% + + + + + + + + + + + + %MODE% + + 1 + + + + 1 + + + + + + + + + + + + %MODE% + + + + + + + + + + + %MODE% + + + + + + %MODE% + + + + + + %MODE% + + + + + + + %MODE% + + + + + + + %MODE% + + + + + + %MODE% + + + + + + %MODE% + + + + + + + + + + + %MODE% + + + + + + + + + + %MODE% + + + + + + + + + + + 1 + + + + 1 + + + + %MODE% + + + + + + + 1 + + + + 1 + + + %MODE% + + + + + + + + + + + 1 + + + + 1 + + + %MODE% + + + + + + + + + + + + %MODE% + + + + + + %MODE% + + + + + + + + + %MODE% + + + + + + + + + + + + + + + %MODE% xsd:restriction + + + + + + + + + %MODE% + + + + + + + + + + + + + + + %MODE% xsd:extension + + + + + + + + + + %MODE% + + + + + + %MODE% + + + + + diff --git a/xsd2cpp-tree-hdr-choice-union.xsl b/xsd2cpp-tree-hdr-choice-union.xsl new file mode 100644 index 0000000..3707d76 --- /dev/null +++ b/xsd2cpp-tree-hdr-choice-union.xsl @@ -0,0 +1,119 @@ + + + + "> + + + + + + + +]> + + + + + + + &INDENT; + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT; + + + + + + + + + + + + &INDENT; + + + + + { + + + + + + + + + + + + &INDENT; + + + + &INDENT; + + + + + + + + &INDENT; + + + + + + + + + + + + + + + + + + + &INDENT; + + diff --git a/xsd2cpp-tree-hdr-inherit.xsl b/xsd2cpp-tree-hdr-inherit.xsl new file mode 100644 index 0000000..6d81c62 --- /dev/null +++ b/xsd2cpp-tree-hdr-inherit.xsl @@ -0,0 +1,115 @@ + + + + "> + + + + + + + +]> + + + + + + + + + + + xmlSerializer + + + + + + + + + xmlSerializer + + + + + + + + + + + + + + + xmlSerializer + + + + + + + + + + + + + + + + + + + + + + + + + + + xsd2cpp-tree: xsd:restriction inherit + + + xmlSerializer + + + + + + + + xmlSerializer + + + + + + + + + + + + + + + diff --git a/xsd2cpp-tree-hdr-mbr-attr.xsl b/xsd2cpp-tree-hdr-mbr-attr.xsl new file mode 100644 index 0000000..d26dd06 --- /dev/null +++ b/xsd2cpp-tree-hdr-mbr-attr.xsl @@ -0,0 +1,239 @@ + + + + "> + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-mbr-attr */ + + + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-mbr-attr + */ + + + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-mbr-attr + */ + + + + + + + + + + + + + + + + WARNING Attribute reference without namespace + + + + + + + + + + WARNING Attribute reference without namespace + + + + + + + + + &INDENT2; + + + + ERROR attribute type + + + + + xsd:attribute type not allowed + + + xsd:attribute form not allowed + + + xsd:attribute simpleType not allowed + + + + + + + + + &INDENT2;/* tree-hdr-mbr-attr */ + + + + + + + &INDENT2;/* tree-hdr-mbr-attr + */ + + + + + + + + + + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + diff --git a/xsd2cpp-tree-hdr-mbr-elem.xsl b/xsd2cpp-tree-hdr-mbr-elem.xsl new file mode 100644 index 0000000..41cd309 --- /dev/null +++ b/xsd2cpp-tree-hdr-mbr-elem.xsl @@ -0,0 +1,337 @@ + + + + "> + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + ERROR: Should not be here + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m_content; + + + ERROR: in schema + + + + + + + + &INDENT2;/* parse-tree-member-element + + + + + + + + + + + + m_content; + + + + + + m_content; + + + + + + + + + + &INDENT2;/* parse-tree-member-element + + */ + + + + + + 1 + + + + + + + + + + + + + + + + + + + + &INDENT2;/* parse-tree-member-element + + */ + + + + + + + + ERROR: not yet treated + + + + + + + + &INDENT2;/* parse-tree-member-element + + */ + + + + + + + + + &INDENT2;/* parse-tree-member-element + + + + + + + + &INDENT2;/* xsd2cpp-tree-hdr-mbr-elemen parse-tree-member-element xsd:union not in a good way*/ + &INDENT2;struct _u m_content; + + + &INDENT2;struct _u m_content; + + + + ERROR: list without type. + + + + + + + + &INDENT2;/* parse-tree-member-element + + + + + &INDENT2;std::string m_content; + + + ERROR: list without type. + + + + + + + + + &INDENT2;/* parse-tree-member-element + + + + + + + &INDENT2;/* parse-tree-member-element + + + + + + + + + + + &INDENT2;/*parse-tree-member-element xsd:any TO BE CODED*/ + + + + + 1 + + + + + + + + + + &INDENT2;/* parse-tree-member-element + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + /*No namespace assume local */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-tree-hdr-root.xsl b/xsd2cpp-tree-hdr-root.xsl new file mode 100644 index 0000000..26c8695 --- /dev/null +++ b/xsd2cpp-tree-hdr-root.xsl @@ -0,0 +1,443 @@ + + + + "> + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + NOT CODED + + + + + NOT CODED + + + + + NOT CODED + + + + + + xsd2cpp-tree-hdr-root tree-hdr-root choice NOT CODED + + + + + + + + + + + + + + + + + + + NOT CODED + &INDENT2;/* xsd2cpp-tree-root + + + + + + + + NOT CODED + + + + + + + + + + + + + + + + + + NOT CODED + + + + + + + + /* tree-hdr-root + + + + */ + class + + + &INDENT;/* xsd2cpp-tree-hdr-root seter and geter */ + + &INDENT;protected: + + }; + + + + + + + + + + + &INDENT2; + + + + + + + + + + /* tree-hdr-root + + + */ + + + + + + + + + + + + + + std::string + + + + + + + + + + + + + + + + + + + + + + + + + + //xsd2cpp-tree-hdr-root tree-hdr-root element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOT CODED + + + + + + + + + + + + + + + + + + + /* tree-hdr-root + + + + Attribute with ref should not happen here + + + + + + + + + + + + + + + /* tree-hdr-root + + + + + + + + + + + + + + + + + + NOT CODED name and type + + + + + + + + + + + + + + + + + + + + /* tree-hdr-root + + + + + + + + + + + + + + + + + + + + + + + + /* tree-hdr-root + + + struct + + + + + + }; + + + + + + + + + + + + + + + &INDENT;/* tree-hdr-root + + + SHOULD NOT HAPPEN + &INDENT;/* TO BE DONE attributeGroup + + + + + + + + + + + /* tree-hdr-root + + + xsd2cpp-tree-header-root NOT CODED + struct + + + + + }; + + + + + + + + NOT CODED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-tree-hdr-setget.xsl b/xsd2cpp-tree-hdr-setget.xsl new file mode 100644 index 0000000..e965272 --- /dev/null +++ b/xsd2cpp-tree-hdr-setget.xsl @@ -0,0 +1,447 @@ + + + + "> + + + + + + + + ]> + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + tree-hdr-set + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + operator =(const + + + : m_content(v) {}; + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + &INDENT2; + + &INDENT2;std::vector< + + + + + + + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + xsd2xpp-tree-header end xsd:union with @memberTypes + + + &INDENT2;//xsd2cpp-tree-hdr-setget + + + + + + + + + + + + + + + + + + + + + + + xsd2xpp-tree-header xsd:field with union-attributes @type= + + + + + + + + operator =(const + + + : m_content() + + + + + + + + /* tree-hdr-setget + + + + + /* tree-hdr-setget + + + + + /* tree-hdr-setget + + + + + /* tree-hdr-setget + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + &INDENT;void + + ; + + + &INDENT;void + + ; + + + + + + + + + + + + + + /* tree-hdr-setget anonymous + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;// attribute + + + + + + + &INDENT2; + + + + + ERROR attribute type definition missing + &INDENT2;// typedef missing + + + + + + + + + + + &INDENT2; + + + + + + + + + + &INDENT2;// + + + + + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + + + + &INDENT2;/* tree-hdr-setget + + + + + + &INDENT2;/* tree-hdr-setget + + &INDENT2;void + + &INDENT2;void + + + + + /* tree-hdr-setget + + + diff --git a/xsd2cpp-tree-hdr-type-mbr-get.xsl b/xsd2cpp-tree-hdr-type-mbr-get.xsl new file mode 100644 index 0000000..74d252a --- /dev/null +++ b/xsd2cpp-tree-hdr-type-mbr-get.xsl @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-get + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-get + + + + + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-get + + + + + + + + + + + + 1 + + + + &INDENT2;/* gen-tree-hdr-type-member-get + + + + + + + &INDENT2; + + + + + @INDENT2;//TODO + + + &INDENT2; + + &INDENT2;// ADDED &INDENT2; + + + Wrong max Occurs for element + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-get + + + + + + + + + + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-get + + + + + + + &INDENT2; + + + + + &INDENT2;//void &INDENT2; + + + &INDENT2; + + + + + + &INDENT2; + + + + + + + diff --git a/xsd2cpp-tree-hdr-type-mbr-set.xsl b/xsd2cpp-tree-hdr-type-mbr-set.xsl new file mode 100644 index 0000000..199fe93 --- /dev/null +++ b/xsd2cpp-tree-hdr-type-mbr-set.xsl @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-set + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-set + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-set + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-set xsd:element + + */ + + + &INDENT2;void &INDENT2; + + + + + + &INDENT2;void &INDENT2; + + + + + + &INDENT2;void + + &INDENT2;void + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-set xsd:element + + */ + + + + + + + + + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-set xsd:element + + */ + + + &INDENT2;void &INDENT2; + + + + + + &INDENT2;void &INDENT2; + + + + + + &INDENT2;void + + &INDENT2;void + + + + + + + + + + + + + + + + &INDENT2;/* gen-tree-hdr-type-member-set xsd:element + + */ + + + + + + + &INDENT2;void + + + + + &INDENT2;void &INDENT2; + + + + + + &INDENT2;void &INDENT2; + + + + + + &INDENT2;void + + &INDENT2;void + + + + + + + + + + \ No newline at end of file diff --git a/xsd2cpp-tree-hdr-typedef.xsl b/xsd2cpp-tree-hdr-typedef.xsl new file mode 100644 index 0000000..57a8d64 --- /dev/null +++ b/xsd2cpp-tree-hdr-typedef.xsl @@ -0,0 +1,28 @@ + + + + "> + + + + + + + +]> + + + + + + diff --git a/xsd2cpp-tree-header.xsl b/xsd2cpp-tree-header.xsl new file mode 100644 index 0000000..0d0bacc --- /dev/null +++ b/xsd2cpp-tree-header.xsl @@ -0,0 +1,1875 @@ + + + + "> + + + + + + + +]> + + + + + + + + + + + + + + + res + + + + + + + + + + + + + + * * Generate Tree Header * + + #ifndef + + #define + #include <xmlSerialize.h> + #include <vector> + + + #include <boost/shared_ptr.hpp> + + + #include <aeb/shared_ptr.h> + + + #include <memory> + #include <tr1/memory> + + + /*TODO: Add missing includes */ + + namespace + + + { + + + + + + + + + + + + + + + + + + class Factory { + public: + &INDENT;typedef xmlSerializer* (*ptCreate)(void); + &INDENT; + &INDENT;Factory(); + &INDENT;~Factory(); + &INDENT;static xmlSerializer *create(int typ); + &INDENT;void register_(int type,ptCreate *); + protected: + &INDENT;static ptCreate m_creators[]; + + }; + + + } + #endif + + + + + + + + + + + + + THROUGH DEPS + + + + + + + + + + + + + + CLASS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class + + std::ostream &operator <<( + + + + + + + class + + std::ostream &operator <<( + + + + + + + + + + + + + + + + + + + struct + + + + + + + + + + + + + + class + + + + + + + + + + + struct + + + + + + + + + + + + + + + + + typedef + + + + struct + + + + + + + struct + + + + + + + + + + + + + + + + + + + + + xsd2cpp-tree-header: Generate Class: + + ERROR: must not happen + + /** + + + + */ class + : public + + + { &INDENT;public: &INDENT2; + + (); &INDENT2; + (const + &v) ; + &INDENT2;~(); + + + &INDENT2;static const int ; + &INDENT2;// + &INDENT2;static xmlSerializer * + + &INDENT2;friend std::ostream &operator <<(std::ostream &os,const &); + &INDENT2;virtual void serialize_any(std::ostream &os) + {os<<*this;}; + + &INDENT2;virtual void serialize_attributes(std::ostream &os); + + + + + + + + + + + + + + + + + + + Error: untreated elemet + + + + &INDENT;public: + + + &INDENT2;/* Set and Get for attributes parse-tree-setget-attribute */ + + + + + + &INDENT;protected: + + &INDENT2;/* apply-templates parse-tree-member-element*/ + + + &INDENT2;/* apply-templates parse-tree-member-attribute*/ + + }; + + + + + + + + &INDENT2;typedef struct + + { + + + + + + + + &INDENT4;friend std::ostream &operator <<(std::ostream &os,const + + + + + + + + + + + + + + + + + &INDENT2;} + + + + + + + + + + &INDENT2;/* parse-tree + + + + Simple type not under xsd:schema can't have name + + + + + + + ERROR: TO BE DONE + + + + + + + + + + + &INDENT2;/* parse-tree + + + + + + + + + + + + &INDENT2;/* parse-tree + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;// parse-tree-simple-content + &INDENT; + + + + + + + + + + + + + + + + + + + + + /* parse-tree-simple content xsd:extension */ + + operator =(const + + + + + + + + &INDENT2;/* parse-tree-simple-cotent union on simpleType to be CODED*/ + WARNING xsd2cpp-tree-header: xsd:union in simpleContent TO BE CODED + + + ERROR: xsd:union in simpleContent Impossible + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;// process restriction on ComplexContent + + &INDENT; operator =(const + + + + + + + + &INDENT2;/* parse-tree-complex-content + + + + + + + TODO parse-tree-complex-content + xsd:extension issue with attributes. Redundant with setget + + + + + + + + + + + + + + + + &INDENT2;// parse-tree xsd:restriction + + + + + + + + + + + + + + + + + + + + + + + + + + + + xsd:restricion on simple type error + + + xsd:restricion on complex Content @base= + + + + + + + + xsd:restricion Untreated for now + + + + + + + No yet coded + + + + + + &INDENT2;/* parse-tree + + + + + + WARNING xsd:list no itemType No yet coded ../@name= + &INDENT2;/* parse-tree + + process list no @itemType */ + + + + + + + &INDENT2;/* parse-tree + + + + + + WARNING xsd:list @itemType= Not yet coded ../@name= + + + + &INDENT2;/* parse-tree + + should process list */ + + &INDENT2;typedef std::vector< + + &INDENT2;typedef std::vector< + + &INDENT2;typedef std::vector< + + &INDENT2;iterator begin() { return m_tokens.begin(); } + &INDENT2;const_iterator begin() const { return m_tokens.begin(); } + &INDENT2;iterator end() { return m_tokens.end(); } + &INDENT2;const_iterator end() const { return m_tokens.end(); } + &INDENT2;size_t size() const { return m_tokens.size(); } + + + + + + + + + + + + + + + + + + + + + + + + + + WARNING xsd:union No yet coded + &INDENT2;//xsd2cpp-tree-header parse-tree xsd:union + + xsd2xpp-tree-header begin xsd:union with @memberTypes + + &INDENT2;enum { + + &INDENT2; + &INDENT2; } + + + + + + &INDENT2;}; + + + xsd2xpp-tree-header end xsd:union with @memberTypes + + + &INDENT2;//xsd2cpp-tree-header parse-tree + + + + + + + + + + + + + + + xsd2xpp-tree-header xsd:field with union-attributes @type= + + + + + + + + &INDENT3; + + + + + + + + + xsd2xpp-tree-header xsd:field with union-attributes @type= + + + + + + + + + &INDENT3; + + + + &INDENT3; + + + + + + , + + + + + + &INDENT;/* attribute : + + ERROR to be implemented */ + + + + + + + + + + + + + + + + + + + + + + &INDENT;// parse-tree + + + + + + + &INDENT2; + + + + + ERROR attribute type definition missing + + + + + + + + &INDENT2; + + + &INDENT2; + + + + + + + + + + &INDENT2;// + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + &INDENT2;/*parse-tree + + + + + + + + + + + + + + + + + + + &INDENT;/*parse-tree xsd:attribute is this required ? */ + + + + + &INDENT;/*parse-tree TODO: nothing */ + + + + + + + + /* attributeGroupe */ + + + + + + + + Parent should only by xsl:schema + + + + + + + + + xsd2cpp-tree-header Process Group: + &INDENT2;/* parse-tree */ + + + + + + + + xsd2cpp-tree-header Process Group Ref : + &INDENT2;/* parse-tree */ + + + + + + ERROR: not yet treated + + + + + + &INDENT2;/* mode=parse-tree sequence + */ + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* xsd2cpp-tree-header parser-tree + */ + + + + + + 1 + + + + + &INDENT2;enum { + + + + + + + + + 1 + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + , + + + + + + + + , + + + + + + + + , + + + + + , + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DO not yet know how to treat + + + + + VERIFY ref element: + + &INDENT2;// xsd2cpp-tree-header mode=parse-tree + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + + + 1 + + + + + + VERIFY element: + + /* Element with integrated type */ + &INDENT;public: + + + + + + + &INDENT2;typedef + + &INDENT2;typedef + + + + + + + + + + + + + + /* End internal declaration */ + ; &INDENT;public: + + + &INDENT2;/* parse-tree + + + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + &INDENT2;//xsd2cpp-tree-header mode=parse-tree xsd:element[@name and @type] ... + + &INDENT2;// + + + &INDENT2;// ns_type is XMLSchema + + + + + + + + + + + + &INDENT2; + + + + &INDENT2;/* parse-tree Set and get avec type and nom */ + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + + + + + + &INDENT;public: + + + + + + + + + + + &INDENT2; + + + + &INDENT2;/* parse-tree Set and get width xsd type*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Should be removed and not pass by here + ; public: + void + protected: + + + Error unknown Element type + /* untreated for now */ + + + + + + + + + + + + &INDENT2;//xsd2cpp-tree-header get_function maxOccurs=unbounded + + &INDENT2; + + + &INDENT2;//void &INDENT2; + + + &INDENT2; + + + + + &INDENT2;//xsd2cpp-tree-header get_function maxOccurs=1 + + &INDENT2; + + + + + + + &INDENT2;/* Any element, needs set/get it's in xmlSerialize */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Not yet coded + + + + + + + + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + + + + + + + + + + + + + + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + + + &INDENT2;void + + ; + + + &INDENT2;void + + ; + + + + + + + &INDENT2;void + + ; + + + &INDENT2;void + + ; + + + + + &INDENT2;void + + ; + + + + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + &INDENT2;/* parse-tree-setget-attribute anonymous + + + + + + + + + + + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + + + + + + + + + + + &INDENT2;// parse-tree-setget-attribute + + + + + + + &INDENT2; + + + + + ERROR attribute type definition missing + &INDENT2;// typedef missing + + + + + + + + + + &INDENT2; + + + + + + + + + + &INDENT2;// + + + + + + + + + + + + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + + + + + + + + + + + + &INDENT2;/* parse-tree-setget-attribute + + + + + + + + + + Parent should only by xsl:schema + + + + + + + diff --git a/xsd2cpp-tree-src-constructor-params.xsl b/xsd2cpp-tree-src-constructor-params.xsl new file mode 100644 index 0000000..443e790 --- /dev/null +++ b/xsd2cpp-tree-src-constructor-params.xsl @@ -0,0 +1,479 @@ + + + + "> + + + + + + +]> + + + + + + + &INDENT; &INDENT;/* tree-src-constructor-params + + + + + + + + &INDENT;m_content=f.m_content;// copy in simple type + + + + + + + + + + + + + + &INDENT;m_content=f.m_content; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;/* tree-src-constructor-params + + + + + + + + + &INDENT;/* tree-src-constructor-params + + + + + + + + + &INDENT;/* tree-src-constructor-params + + + + + + + + + + + + + + + &INDENT;/* tree-src-constructor-params + + + + + + + + + + + + + + + + + + + &INDENT;m_content=f.m_content; + + + + + + + + + + + + + + + + + &INDENT;/*generate-tree-skell-constructor-parmas xsd:union TO BE CODED */ + + + + + + + &INDENT;m_content=f.m_content; + + + + + + + + + + + + + + + &INDENT;/* tree-src-constructor-params + + + + + + &INDENT;/* copy m_content for List*/ + &INDENT;m_content=f.m_content; + + + + + + + + + + + &INDENT;/* tree-src-constructor-params + + + + + + &INDENT;/* copy m_content for List*/ + &INDENT;m_content=f.m_content; + &INDENT;m_tokens=f.m_tokens; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + &INDENT2; + + + + + + + + + &INDENT2; + + + + + + + + + + + + + + &INDENT2; + + + + + + + &INDENT; + + + + + /* remove delete temporarly */ + + + + + + + + + + + + + Bad operation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Attribute not found + + + + + + + + &INDENT;//ERROR 1200 Where is it taken into account ? + + + ERROR Attribute reference Not treated + + + Attribute not yet treated + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;if (f.me_attr_ + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-tree-src-serialize-attribute.xsl b/xsd2cpp-tree-src-serialize-attribute.xsl new file mode 100644 index 0000000..daa26c1 --- /dev/null +++ b/xsd2cpp-tree-src-serialize-attribute.xsl @@ -0,0 +1,207 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + &INDENT;// tree-src-serialize-attr + + + + + + + + + + + &INDENT;os<<me_attr_ + + + + + + + + &INDENT;// tree-src-serialize-attr + + + + + + + + + &INDENT;// tree-src-serialize-attr + + + + + + + + + + + + + + + + + + + + + + + &INDENT;// tree-src-serialize-attr + + + + &INDENT;if ( + + + &INDENT;os<< + + + + + + + + + + + + + + + + + + &INDENT;} + + + + + + + + + + + + &INDENT;/* trees-src-serialize-attr + + + + + + + + &INDENT;/* trees-src-serialize-attr + + + + + + + + &INDENT;/* trees-src-serialize-attr + + + + + + + xsd:restriction Serialize Attribute + + + /* trees-src-serialize-attr + + + + + + + + + + + + xsd:extension Serialize Attribute + + + /* trees-src-serialize-attr + + + + + + + + + Serialize Attribute + + + + + + Serialize xsd:extension Attribute + + + + + diff --git a/xsd2cpp-tree-src-serialize-element.xsl b/xsd2cpp-tree-src-serialize-element.xsl new file mode 100644 index 0000000..3034106 --- /dev/null +++ b/xsd2cpp-tree-src-serialize-element.xsl @@ -0,0 +1,210 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + /* tree-src-serialize-element + + + + + + + + + + + + + + + /* tree-src-serialize-element + + + + + + + + + + + + + + + /* tree-src-serialize-element + + + + + + + + + + + + + + + /* tree-src-serialize-element + + + + + + + + + + /* tree-src-serialize-element + + + + + + + + + + + /* tree-src-serialize-element + + + + + + + + + + + + + + + + + + + + + + + /* tree-src-serialize-element + + + + + + + + + + diff --git a/xsd2cpp-tree-src-serialize-root.xsl b/xsd2cpp-tree-src-serialize-root.xsl new file mode 100644 index 0000000..98fe186 --- /dev/null +++ b/xsd2cpp-tree-src-serialize-root.xsl @@ -0,0 +1,181 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + //xsd2cpp-tree tree-src-serialize-root + + std::ostream & + operator <<(std::ostream &os,const + &obj) { + + + + + + } + VERIFY sT + + void + + + } + + + + + + VERIFY cT + std::ostream & + operator <<(std::ostream &os,const + &obj) { + + + + + + + + + + } + + void + + + + + } + + + + + + + + + + + + + + + + + + + + + + /* * tree-src-serialize-root + + + */ + + std::ostream & + operator <<(std::ostream &os,const + &obj) { + /*TO BE CODED element with no type. serialize*/ + + + IMPLEMENT: anyType + + + IMPLEMENT: + + + + + + + + } + + void + + #if 1 + + + #endif + } + /* end of generate-serialize-root xsd:element + + + */ + + + + + + IMPLEMENT: + + + + + + + + IMPLEMENT: + /** Generated Serialisation of + + + std::ostream & + operator <<(std::ostream &os,const + &obj) { + &INDENT;os<<"< + + + + + &INDENT;os<<"</ + + + + + } /* tree-src-serialize-root*/ + + + + + + + + + diff --git a/xsd2cpp-tree-src-serialize.xsl b/xsd2cpp-tree-src-serialize.xsl new file mode 100644 index 0000000..55d5f0a --- /dev/null +++ b/xsd2cpp-tree-src-serialize.xsl @@ -0,0 +1,595 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + /** Generated Serialisation of + + std::ostream & + + operator <<(std::ostream &os,const + &obj) { + + os<<"< + + + + + + + "; + + + + + + + + + + + \" + + \" + + + + "; + + + + &INDENT;if (obj.m_withNamespace) { os<<" xmlns: + + + + \" + + \" + + + "; &INDENT;} + + + + + + + /* 1 */ + &INDENT;os<<">"; + + + + + + + + + + /* 2 */ + + + + + os<<"</ + + + + + + + + + + + + >"; } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* See how to treat any*/ + if (obj.me_any != NULL) obj.me_any->serialize_any(os); + + + /* + + */ + + + + + + + + + + + + &INDENT;/* tree-src-serialize + + + + + + + + + + + + + + + + &INDENT;/* tree-src-serialize + + */ + + + + + + &INDENT;os<<((obj.m_content)?"true":"false"); + + + &INDENT;os<<obj.m_content; + + + + + /* I think this is wrong.*/ + &INDENT;os<<obj.m_content; + /* This should be better*/ + + + + + + &INDENT;os<<obj.m_content; + + + xsl:restriction serialize untreated + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;//WARNING: generate-treee-skell-serialize + + &INDENT;//os<<obj.m_content; + + + + + + &INDENT2;default: + &INDENT;os<<"EXCEPTION :"; + + &INDENT3;break; + &INDENT;}; + + + + + + + + + + + + + + + xsd2xpp-tree-header xsd:field with union-attributes @type= + + + + + + + &INDENT3;os<<obj.m_content.m_ + + &INDENT3;break; + + + + &INDENT2; + &INDENT3;os<<obj.m_content.m_ + + &INDENT3;break; + + + + + + + + + + + + + + + + + + + + &INDENT;// tree-src-serialize + + + + + + + + &INDENT;// tree-src-serialize + without type to be coded + + + + + + &INDENT;// tree-src-serialize + to be coded + + + + + + &INDENT;// tree-src-serialize + to be coded + + + + + + &INDENT;// tree-src-serialize + to be coded + + + + + + + + + &INDENT;// tree-src-serialize + to be coded + + &INDENT;for( + + ::const_iterator it = obj.begin() ; it != obj.end() ; ++it) + &INDENT;if (it == obj.begin() ) { os<<(*it); } else + os<<" "<<(*it); + + + + + &INDENT;// tree-src-serialize + to be coded + + &INDENT;os<<obj.m_content; + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + &INDENT;/* Serialize element with internal type */ + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;/* Serialize element with type + + */ + + + + + + + + + + + / + + + + + + + + + + + /* generate-tree-skell-serialize-sequence */ + &INDENT; + + &INDENT;for ( + + + + + &INDENT2;os<< + + + &INDENT;} + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;if ( + + os<< + + + "< + + + + + >"<<*obj.me_ + + <<"</ + + + + + >"; + + + + >"<<(*obj.me_ + + + + + >"<<(*obj.me_ + + + + *obj.me_ + + + + + + diff --git a/xsd2cpp-tree-src-setget.xsl b/xsd2cpp-tree-src-setget.xsl new file mode 100644 index 0000000..fe43c6b --- /dev/null +++ b/xsd2cpp-tree-src-setget.xsl @@ -0,0 +1,598 @@ + + + + "> + + + + + + + + ]> + + + + + + + + + + + + + + + /** * tree-src-setget + + */ + + + + + /* end generate tree skell post*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* tree-src-setget + + */ + + + + + + + + + + + + + + /* tree-src-setget + + */ + + + + + + + + + + + + + + + /* tree-src-setget + + + + + + + + + + + + + /* tree-src-setget + + + + + + + + + + + + // tree-src-setget + + + + + + + // tree-src-setget with @itemType + + + + std::stringstream ss(s); + std::string buf; + //m_content = s; + while(ss>>buf) + m_tokens.push_back(buf); + return *this; + } + + + + + + + + + // tree-src-setget + + + + + + + + + + + /** tree-src-setget + + + + */ + + + + + + + 1 + + + + + + + + + + 1 + + + + + + + + + + + + VERIFY: setget @ref with no name + /** xsd2cpp-tree-src-setget + + + + */ + + + + + + + + + + + + + #if 0 + + + + + + + + + + + + + + + #endif + + + + + + + 1 + + + + + + + + /** xsd2cpp-tree-src-setget + + + + */ + + + + + + + + + + + + + + + + + + 1 + + + + + + + VERIFY: setget with no type + // Element without type tree-src-setget + + + + + + + + + + + + + + TO BE CODED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + /** xsd2cpp-tree-src-setget + + + */ + + + + + + + + + + 1 + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + /** xsd2cpp-tree-src-setget + + + + */ + + + /*TO BE CODED sequence */ + + + + + + + + + /*blblbl*/ + + + + + + + + + + + + + /*blblbl 2*/ + + + + + + + + + 1 + + + + + + + + + + + + + + + + /* tree-src-setget + + */ + VERIFY: setget @ref with no name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* tree-src-setget + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* tree-src-setget for xsd:attribute name not type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* post method for xsd:attributeGroup name*/ + + + + + + + + + + + /* post method for xsd:attributeGroup */ + + + + + + + diff --git a/xsd2cpp-tree.xsl b/xsd2cpp-tree.xsl new file mode 100644 index 0000000..b7dc5a2 --- /dev/null +++ b/xsd2cpp-tree.xsl @@ -0,0 +1,962 @@ + + + + "> + + + + + + +]> + + + + + + + test + + + + + + + + + + + + + + + + #include < + + > + + + /* import not supported */ + TO BE CODED + + + + + + + + + res + + + + + + + + + + + + + * * Generate Tree Source * + + + + #include <string> + #include <iostream> + #include <sstream> + #include <vector> + #include <xsd/xsd.h> + #include <xmlSerialize.h> + /* Include imports */ + + + #include <> + + &CR;/* DEBUG MACRO */ + #ifdef DEBUG&CR; + #define LOG_DEBUG(f) do {} while (0)&CR; + #define LOG_DEBUG_FMT(f,args...) do {} while (0)&CR; + #define LOG_DEBUG_CONSTRUCT(f) do {} while (0)&CR; + #define LOG_DEBUG_CONSTRUCT_FMT(f,args...) do {} while (0)&CR; + #define LOG_INFO_FMT(f,args...) do {} while (0)&CR; + #define LOG_ERROR_FMT(f,args...) do {} while (0)&CR; + #else&CR; + #define LOG_DEBUG(f) do {} while (0)&CR; + #define LOG_DEBUG_CONSTRUCT(f) do {} while (0)&CR; + #define LOG_DEBUG_FMT(f,args...) do {} while (0)&CR; + #define LOG_INFO_FMT(f,args...) do {} while (0)&CR; + #define LOG_ERROR_FMT(f,args...) do {} while (0)&CR; + #endif&CR; + namespace + + + { + + + + Factory::ptCreate Factory::m_creators[] = { NULL/* Elements start a 1 */, + + NULL}; + xmlSerializer *Factory::create(int type) { + &INDENT;if (m_creators[type] != NULL ) { + &INDENT2;return m_creators[type](); + &INDENT;} else + &INDENT2;return new xmlSerializer(); + } + } + + + + + + + + + /* + + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &INDENT;NULL, + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STOP + + + STOP + + + + STOP + + + + + + + + + + + + + + + + WARNING Implement + /* class-tree-skel-source-root SPECIAL CASE*/ + + + + + + + + /* class-tree-skel-source-root SPECIAL CASE + + + */ + + + + + + + + + + + + + + + /** class-tree-skel-source-root Should not happen xsd:attribute[@ref] **/ + + + + + + + + + + + + + + + + + WARNING + + + + + + + + + + + + + + + + + + + + + + + + + #if 1 + + + + + + + + + + + + + + + #endif + + + + + // group + + + + + + + + // class-tree-skel-source-root + + + + + + + + + + + + + + + + + + + // attributeGroup + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + /*class-tre-skel-source ELEMENT WITHOUT TYPE */ + + + + + + + + + + + + + /**/ + + + + + + To see + + + + + + + + + + + + + + /* START class-tree-skel-source * New class implementation generation + + + + + */ + + + + + + + + + + + + + /* Internal Elements without type + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* class tree-skel-source + implementation generation after constructor*/ + + + + + + + + + + + + + + + + + + + + + + + /* Internal Elements without type serialize + */ + + + + + + + + + + + + + + + + + + + /* implementation generation after serialize */ + + + /* class-tree-skel-source LA call tree-src-setget*/ + + + + /* * END new class implementation generation + + */ + + + + + + + + :: + + + + const + + + + + : + + const + + + , + + + { + + + + + + LOG_DEBUG_CONSTRUCT_FMT(" + + ",(void *)this); + + + + + + + + + + + + + /* I have + */ + + /* Element + */ + + } + + :: + + + + : + + const1 + + + , + + + { + + + + + LOG_DEBUG_CONSTRUCT_FMT(" + + ",(void *)this); + + + + + &INDENT;//m_content=v.m_content; + + copy + + + &INDENT;m_union_kind =v.m_union_kind; + + + } + + + ::~ + () { + + + + + LOG_DEBUG_CONSTRUCT_FMT(" + + ",(void *)this); + + + + dest + + } + // generate-tree-skell-constructor + ::operator=( + + { + + copy + + + copy + + &INDENT;return *this; } + + + + + + + + /** + + */ + xmlSerializer * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp-types.xsl b/xsd2cpp-types.xsl new file mode 100644 index 0000000..dc5b1e4 --- /dev/null +++ b/xsd2cpp-types.xsl @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + not good ext type - + + + + + + + + + + not goodd - + + + + + + + + std::string + + + std::string + + + std::string + + + std::string + + + bool + + + long + + + float + + + double + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + long + + + long + + + long + + + long + + + int + + + short + + + signed char + + + unsigned long + + + unsigned long + + + unsigned int + + + unsigned short + + + unsigned char + + + unsigned long + + diff --git a/xsd2cpp-utils.xsl b/xsd2cpp-utils.xsl new file mode 100644 index 0000000..579a698 --- /dev/null +++ b/xsd2cpp-utils.xsl @@ -0,0 +1,231 @@ + + + + "> + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MAYBE= + + + + + + + + + + + + + + + + + xsd2cpp: namespace-uri-of-qname qname=() - + + + + + + + + + + + + + xsd2xpp: space-string-list: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xsd2xpp: space-string-list: Built: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp.java b/xsd2cpp.java new file mode 100644 index 0000000..77727dc --- /dev/null +++ b/xsd2cpp.java @@ -0,0 +1,89 @@ +import org.apache.xalan.transformer.TransformerImpl; +import org.apache.xalan.trace.TraceManager; +import org.apache.xalan.trace.PrintTraceListener; +import java.io.InputStream; + + +public class xsd2cpp { + public static void main(String[] argv) { + String inFileName = ""; + System.out.println("xsd2cpp filename "); + for ( int i = 0 ; i < argv.length ; i++) + { + if ("-T".equalsIgnoreCase(argv[i])) { + } + else if ("-IN".equalsIgnoreCase(argv[i])) + { + if (i + 1 < argv.length && argv[i + 1].charAt(0) != '-') + inFileName = argv[++i]; + else + System.err.println("-IN Option missing parameter" + ); //"Missing argument for); + } else { + System.err.println("Undefined Option" + ); //"Missing argument for); + } + + } + xsd2cpp t= new xsd2cpp(); + t.test(inFileName); + } + + public void test(String filename) { + + // Set up a PrintTraceListener object to print to a file. + try { + String pathWithinJar = "Users/aeb/Devs/home/tools/xml-transform/xsd2cpp.xsl"; + InputStream is = java.lang.ClassLoader.getSystemResourceAsStream(pathWithinJar); + + java.io.FileWriter fw = new java.io.FileWriter("events.log"); + java.io.PrintWriter pw = new java.io.PrintWriter(fw); + PrintTraceListener ptl = new PrintTraceListener(pw); + + // Print information as each node is 'executed' in the stylesheet. + ptl.m_traceElements = true; + // Print information after each result-tree generation event. + ptl.m_traceGeneration = true; + // Print information after each selection event. + ptl.m_traceSelection = true; + // Print information whenever a template is invoked. + ptl.m_traceTemplates = true; + // Print information whenever an extension is called. + ptl.m_traceExtension = true; + + // Set up the transformation + javax.xml.transform.TransformerFactory tFactory = + javax.xml.transform.TransformerFactory.newInstance(); + //ResourceResolver resloader = new ResourceResolver(); + ResourceResolver resloader = new ResourceResolver(tFactory.getURIResolver()); + tFactory.setURIResolver(resloader); + + javax.xml.transform.Transformer transformer = + tFactory.newTransformer(new javax.xml.transform.stream.StreamSource + (is)); + + // Cast the Transformer object to TransformerImpl. + if (transformer instanceof TransformerImpl) { + TransformerImpl transformerImpl = (TransformerImpl)transformer; + + + + // Register the TraceListener with the TraceManager associated + // with the TransformerImpl. + TraceManager trMgr = transformerImpl.getTraceManager(); + trMgr.addTraceListener(ptl); + + // Perform the transformation --printing information to + // the events log during the process. + transformer.transform + ( new javax.xml.transform.stream.StreamSource(filename), + new javax.xml.transform.stream.StreamResult + (new java.io.FileWriter("foo.out")) ); + } + // Close the PrintWriter and FileWriter. + pw.close(); + fw.close(); + } catch (Exception e) { + } + } +} diff --git a/xsd2cpp.xsl b/xsd2cpp.xsl new file mode 100644 index 0000000..895351f --- /dev/null +++ b/xsd2cpp.xsl @@ -0,0 +1,961 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + XMI + no + no + no + yes + yes + no + debug + yes + yes + yes + yes + yes + yes + + + + + + + soapenv + http://schemas.xmlsoap.org/soap/envelope/ + + + soapenc + http://schema.xmlsoap.org/encoding/ + + + filter + http://www.alcatel-lucent.com/wsp/ns/2009/10/15/ics/subscriptionFilter + + + IncsNs + http://www.alcatel-lucent.com/wsp/ns/2009/10/01/ics/notifierServiceSchema + + + xsd + http://www.w3.org/2001/XMLSchema + + + + /include + /src + ./ + + boost + yes + yes + yes + yes + + _skel + + me_ + me_ + me_attr_ + me_attr_ + m_union_kind + m_choice_kind + _skel + p_ + _elemg_type + _attrg_type + me_attrg_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hello worlds the extention is available + + + Start Processing : + + + + + + + + + + + + + + + + + + + + + + PROJECT( + + #SET(XML_PARSER "") + + + Create cmake entry for : - + SET(XML_PARSER ${XML_PARSER} + + + ) + SET(XML_PARSER ${XML_PARSER} + + + ) + #SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/ + SET_SOURCE_FILES_PROPERTIES( + + GENERATED) + #SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/ + SET_SOURCE_FILES_PROPERTIES( + + GENERATED) + + + + ADD_LIBRARY( + STATIC ${XML_PARSER}) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + import-document look at: + + + + + + + import-document case 1 look at: + + + + import-document case 2 look at: + + + + import-document case 3 look at: + + + + + + + ERROR we definitly do not find the path for + + + + Fallback + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + unqualified + + + + + + + + + unqualified + + + + + + + + 1 + + + + + + + + + + + + + + + _operator + + + _class + + + _const + + + _private + + + _template + + + _if + + + _switch + + + _case + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Should not use this anymore + + + + + + + + + + + + + + + + + + + + + + + + MAYBE= + + + + + + + + + + + + + + + + xsd2cpp: namespace-uri-of-qname qname=() - + + + xsd2cpp: namespace-uri-of-qname qname=() - + + + + xsd2cpp: default namespace-uri-of-qname qname=() - + + + + + + + + + + + + ns == " + + " + + + ns.empty() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + not good ext type - + + + + CORRECT - + + + + + TODO xsd2cpp.xsl + + + + not good - + + + + + + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + bool + + + long + + + float + + + double + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + std::string + + + long + + + long + + + long + + + long + + + int + + + short + + + signed char + + + unsigned long + + + unsigned long + + + unsigned int + + + unsigned short + + + unsigned char + + + unsigned long + + + + + + + + + + + + + + + + + + + + + + TO BE CODED xsd: + + + TO BE CODED xsd: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xsd2xpp: space-string-list: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xsd2xpp: space-string-list: Built: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd2cpp_saxon.java b/xsd2cpp_saxon.java new file mode 100644 index 0000000..020c7c6 --- /dev/null +++ b/xsd2cpp_saxon.java @@ -0,0 +1,85 @@ +import java.io.*; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URI; + + +public class xsd2cpp_saxon { + public static void main(String[] argv) { + String inFileName = ""; + System.out.println("xsd2cpp filename "); + for ( int i = 0 ; i < argv.length ; i++) + { + if ("-T".equalsIgnoreCase(argv[i])) { + } + else if ("-IN".equalsIgnoreCase(argv[i])) + { + if (i + 1 < argv.length && argv[i + 1].charAt(0) != '-') + inFileName = argv[++i]; + else + System.err.println("-IN Option missing parameter" + ); //"Missing argument for); + } else { + System.err.println("Undefined Option" + ); //"Missing argument for); + } + + } + xsd2cpp_saxon t= new xsd2cpp_saxon(); + t.test(inFileName); + } + + public void test(String filename) { + + // Set up a PrintTraceListener object to print to a file. + try { + + // Set up the transformation + String pathWithinJar = "Users/aeb/Devs/home/tools/xml-transform/xsd2cpp.xsl"; + InputStream is = java.lang.ClassLoader.getSystemResourceAsStream(pathWithinJar); + + String xmlSystemId = new File(filename).toURL().toExternalForm( ); + + java.io.FileWriter fw = new java.io.FileWriter("events.log"); + java.io.PrintWriter pw = new java.io.PrintWriter(fw); + + System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); + // Set up the transformation + javax.xml.transform.TransformerFactory tFactory = + javax.xml.transform.TransformerFactory.newInstance(); + // TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null); + + ResourceResolver resloader = new ResourceResolver(tFactory.getURIResolver()); + tFactory.setURIResolver(resloader); + + javax.xml.transform.Transformer transformer = + tFactory.newTransformer(new javax.xml.transform.stream.StreamSource + (is)); + + transformer.setParameter("rootdir","./"); + transformer.setParameter("target","release"); + transformer.setParameter("shared-ptr","aeb"); + transformer.setParameter("xsddir","./;./;/Users/aeb/Devs/home/data-models/;./../ ../../data-models/"); + // Cast the Transformer object to TransformerImpl. + // Perform the transformation --printing information to + // the events log during the process. + transformer.transform + ( new javax.xml.transform.stream.StreamSource(filename), + new javax.xml.transform.stream.StreamResult + (new java.io.FileWriter("foo.out")) ); + // Close the PrintWriter and FileWriter. + pw.close(); + fw.close(); + + + + } catch (Exception e) { + } + } + + + public void test1(String filename) { + + + } +} -- 2.30.2