2011-09-08 3 views
0

Je ne trouve pas comment créer un document par défaut à partir de XML Schema dans la documentation Xerces-C. Cependant, je l'ai essayé ce qui suit:Comment générer un document autorisé minimal en utilisant Xerces-C?

const char XMLLinesSchema[] = /* some valid schema */; 
MemBufInputSource schema_mem_buf(reinterpret_cast<const XMLByte*>(XMLLinesSchema), 
    sizeof(XMLLinesSchema), L"schema"); 
XercesDOMParser parser; 
// enable schema processing 
parser.setDoSchema(true); 
parser.setDoNamespaces(true); 
// Let's preparse the schema grammar (.xsd) and cache it. 
parser.loadGrammar(schema_mem_buf, Grammar::SchemaGrammarType, true); 
parser.useCachedGrammarInParse(true); 
parser.setValidationScheme(XercesDOMParser::Val_Always); 

DOMDocument* doc = parser.getDocument(); 

Mais parser.getDocument retours NULL. Qu'est-ce que je fais mal? Est-il possible de générer un document autorisé minimal pour le schéma XML spécifié en utilisant Xerces-C?

Répondre

0

La documentation dit ceci:

Il doit être utilisé par les applications qui choisissent d'analyser et de traiter le document XML en utilisant les DOM de api de.

Vous utilisez un analyseur de sorte qu'il s'attend à ce que certaines entrées soient analysées via la fonction parse(...). Vous n'avez rien analysé, donc rien ne sera retourné.

+0

Que devrais-je utiliser à la place de 'XercesDOMParser'? –

+0

Je pense que vous aurez besoin de regarder en utilisant 'DOMDOMImplementation :: createDocument()' pour créer un document par défaut, et IIRC, vous pouvez également y définir le schéma. –

Questions connexes