本文整理汇总了C++中SAX2XMLReader::setProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ SAX2XMLReader::setProperty方法的具体用法?C++ SAX2XMLReader::setProperty怎么用?C++ SAX2XMLReader::setProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SAX2XMLReader
的用法示例。
在下文中一共展示了SAX2XMLReader::setProperty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: paraname
//.........这里部分代码省略.........
std::string strModuleName;
//std::cout << "AUTOSAR ini-file (ini file name):[" << paraname << "]" << std::endl;
if( !paraname.empty() )
{
strAUTOSARVersion = get_global_string( "XML_AUTOSARVersion" );
if( strAUTOSARVersion.empty() )
{
strAUTOSARVersion = "4";
warning( _( " \"AUTOSARVersion\" parameter is not found in AUTOSAR ini-file. Use default value." ) );
}
strSchema = get_global_string( "XML_Schema" );
if( strSchema.empty() )
{
strSchema = "AUTOSAR_4-0-3_STRICT.xsd";
warning( _( " \"Schema\" parameter is not found in AUTOSAR ini-file. Use default value." ) );
}
strSchemaLocation = get_global_string( "XML_SchemaLocation" );
if( strSchemaLocation.empty() )
{
strSchemaLocation = "http://autosar.org/schema/r4.0";
warning( _( " \"SchemaLocation\" parameter is not found in AUTOSAR ini-file. Use default value." ) );
}
strContainerPath = get_global_string( "XML_ContainerPath" );
if( strContainerPath.empty() )
{
strContainerPath = "/AUTOSAR/EcucDefs";
warning( _( " \"ContainerPath\" parameter is not found in AUTOSAR ini-file. Use default value." ) );
}
}
toppers::global( "XML_AUTOSARVersion" ) = strAUTOSARVersion;
toppers::global( "XML_Schema" ) = strSchema;
toppers::global( "XML_SchemaLocation" ) = strSchemaLocation;
toppers::global( "XML_ContainerPath" ) = strContainerPath;
// XMLファイルの中にxsi:schemaLocation属性があればその要素を取得
std::string sstr( "xsi:schemaLocation" );
std::string buf;
toppers::read( input_file, buf );
std::list<std::string> results;
string::size_type index( buf.find( sstr ) );
if( index != string::npos )
{
string::size_type index2( buf.substr( index ).find( "\"" ) );
string::size_type index3( buf.substr( index+index2+1 ).find( "\"" ) );
sstr = buf.substr( index+index2+1, index3 );
split( results, sstr, boost::is_space() );
}
// スキーマファイルのチェック
std::ostringstream ostream;
if( results.size() == 2 && fs::exists( results.back() ) )
{
ostream << sstr;
}
else
{
ostream << get_global_string( "XML_SchemaLocation" ) << " " << fs::absolute( get_global_string( "cfg-directory" ).c_str() ).string()
<< "/" << get_global_string( "XML_Schema" );
}
XMLCh* str (XMLString::transcode (ostream.str().c_str()));
parser->setProperty(XMLUni::fgXercesSchemaExternalSchemaLocation, str);
//
// Create our SAX handler object and install it on the parser, as the
// document and error handler.
//
SAX2Handlers handler;
parser->setContentHandler(&handler);
parser->setErrorHandler(&handler);
//reset error count first
handler.resetErrors();
handler.filename = input_file;
try
{
parser->parse(input_file.c_str());
}
catch (const OutOfMemoryException&)
{
warning("OutOfMemoryException");
}
catch (const XMLException& e)
{
warning( _("\nError during parsing: '%'\nException message is: \n%\n"), input_file, toNative(e.getMessage()));
}
catch (...)
{
warning( _("\nUnexpected exception during parsing: '%'\n"), input_file);
}
delete parser;
XMLPlatformUtils::Terminate();
return handler.object_array;
}
示例2: main
// ---------------------------------------------------------------------------
// Program entry point
// ---------------------------------------------------------------------------
int main(int argC, char* argV[])
{
// Check command line and extract arguments.
if (argC < 2)
{
usage();
return 1;
}
// cannot return out of catch-blocks lest exception-destruction
// result in calls to destroyed memory handler!
int errorCode = 0;
try
{
XMLPlatformUtils::Initialize();
}
catch (const XMLException& toCatch)
{
XERCES_STD_QUALIFIER cerr << "Error during initialization! Message:\n"
<< StrX(toCatch.getMessage()) << XERCES_STD_QUALIFIER endl;
errorCode = 2;
}
if(errorCode) {
XMLPlatformUtils::Terminate();
return errorCode;
}
bool doList = false;
bool schemaFullChecking = false;
const char* xsdFile = 0;
int argInd;
for (argInd = 1; argInd < argC; argInd++)
{
// Break out on first parm not starting with a dash
if (argV[argInd][0] != '-')
break;
// Watch for special case help request
if (!strcmp(argV[argInd], "-?"))
{
usage();
return 1;
}
else if (!strcmp(argV[argInd], "-l")
|| !strcmp(argV[argInd], "-L"))
{
doList = true;
}
else if (!strcmp(argV[argInd], "-f")
|| !strcmp(argV[argInd], "-F"))
{
schemaFullChecking = true;
}
else
{
XERCES_STD_QUALIFIER cerr << "Unknown option '" << argV[argInd]
<< "', ignoring it\n" << XERCES_STD_QUALIFIER endl;
}
}
//
// There should be only one and only one parameter left, and that
// should be the file name.
//
if (argInd != argC - 1)
{
usage();
return 1;
}
XMLGrammarPool *grammarPool;
SAX2XMLReader* parser;
try
{
grammarPool = new XMLGrammarPoolImpl(XMLPlatformUtils::fgMemoryManager);
parser = XMLReaderFactory::createXMLReader(XMLPlatformUtils::fgMemoryManager, grammarPool);
parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
parser->setFeature(XMLUni::fgXercesSchema, true);
parser->setFeature(XMLUni::fgXercesSchemaFullChecking, schemaFullChecking);
parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
parser->setFeature(XMLUni::fgXercesDynamic, true);
parser->setProperty(XMLUni::fgXercesScannerName, (void *)XMLUni::fgSGXMLScanner);
SCMPrintHandler handler;
parser->setErrorHandler(&handler);
bool more = true;
bool parsedOneSchemaOkay = false;
XERCES_STD_QUALIFIER ifstream fin;
// the input is a list file
if (doList)
fin.open(argV[argInd]);
//.........这里部分代码省略.........