diff --git a/src/Generator.cpp b/src/Generator.cpp index 0b83820..3c1a6c4 100644 --- a/src/Generator.cpp +++ b/src/Generator.cpp @@ -177,6 +177,7 @@ class Generator _hppOutput.append(String("void load_file(const std::string& file, ") + elementTypeCppName + "& " + elementCppName + ");"); _hppOutput.append(String("void load_data(const std::string& data, ") + elementTypeCppName + "& " + elementCppName + ");"); + _hppOutput.append(String("void load_data(const char* data, ") + elementTypeCppName + "& " + elementCppName + ");"); _hppOutput.append(""); } @@ -221,15 +222,21 @@ class Generator String elementTypeCppName = toCppTypeIdentifier2(i->typeName); String elementCppName = toCppFieldIdentifier(i->name); - _cppOutputFinal.append(String("void load_data(const std::string& data, ") + elementTypeCppName + "& output)"); + _cppOutputFinal.append(String("void load_data(const char* data, ") + elementTypeCppName + "& output)"); _cppOutputFinal.append("{"); _cppOutputFinal.append(String(" ") + rootTypeCppName + " rootElement;"); _cppOutputFinal.append(String(" xsdcpp::ElementContext elementContext(&_") + rootTypeCppName + "_Info, &rootElement);"); - _cppOutputFinal.append(" xsdcpp::parse(data.c_str(), _namespaces, elementContext);"); + _cppOutputFinal.append(" xsdcpp::parse(data, _namespaces, elementContext);"); _cppOutputFinal.append(String(" output = std::move(rootElement.") + elementCppName + ");"); _cppOutputFinal.append("}"); _cppOutputFinal.append(""); + _cppOutputFinal.append(String("void load_data(const std::string& data, ") + elementTypeCppName + "& output)"); + _cppOutputFinal.append("{"); + _cppOutputFinal.append(" load_data(data.c_str(), output);"); + _cppOutputFinal.append("}"); + _cppOutputFinal.append(""); + _cppOutputFinal.append(String("void load_file(const std::string& filePath, ") + elementTypeCppName + "& output)"); _cppOutputFinal.append("{"); _cppOutputFinal.append(" load_data(xsdcpp::read_file(filePath), output);");