2009-09-30 21 views
5

के माध्यम से मिलता है मैंने कुछ योजनाओं के खिलाफ एक्सएमएल को प्रमाणित करने के लिए एमएसडीएन में एक जेस्क्रिप्ट उदाहरण को फिर से लिखने का प्रयास किया है।डेल्फी: अवैध एक्सएमएल एमएसएक्सएमएल सत्यापन

पहले प्रयास के रूप में, मैंने उदाहरण में उपयोग के रूप में sl-valid.xml, sl-notValid.xml, और sl.xsd फ़ाइलों का उपयोग किया है।

मेरे कोड इस प्रकार है:

procedure BasicValidation(FileName: string); 
var 
    XML: IXMLDOMDocument2; 
begin 
    // Load XML and resolve externals 
    XML := ComsDOMDocument.Create; 
    XML.async := False; 
    XML.validateOnParse := True; 
    XML.resolveExternals := True; 
    XML.setProperty('SelectionLanguage', 'XPath'); 
    XML.setProperty('SelectionNamespaces', 'xmlns:x=''urn:book'''); 
    XML.load(FileName); 
    if XML.parseError.errorCode <> 0 then 
    ShowMessage('Error parsing. Reason: ' + XML.parseError.reason) 
    else 
    ShowMessage('XML validation OK.'); 
end; 

जब मैं sl-notValid.xml फ़ाइल की कोशिश, मैं अभी भी 'XML सत्यापन ठीक है' मिलता है। क्या किसी ने इसे पहले देखा है? उपरोक्त कोड और जेस्क्रिप्ट परीक्षा http://msdn.microsoft.com/en-us/library/ms764717%28VS.85%29.aspx के बीच मौलिक अंतर क्या है?

उत्तर

8

इस

procedure BasicValidation(FileName: string); 
var 
    XML: IXMLDOMDocument2; 
begin 
    XML := CoDOMDocument40.Create; 
    XML.async := False; 
    XML.validateOnParse := True; 
    XML.resolveExternals := True; 
    XML.setProperty('SelectionLanguage', 'XPath'); 
    XML.setProperty('SelectionNamespaces', 'xmlns:x=''urn:book'''); 
    XML.load(FileName); 
    if XML.parseError.errorCode <> 0 then 
    ShowMessage('Error parsing. Reason: ' + XML.parseError.reason) 
    else 
    ShowMessage('XML validation OK.'); 
end; 

स्पष्टीकरण की कोशिश, आप स्पष्ट रूप से एक संस्करण है कि XSD स्कीमा सत्यापन के लिए समर्थन (MSXML> = 4) के एक निर्माता कॉल करना होगा।

अलविदा।

+0

बहुत बहुत धन्यवाद, आरआरयूजेड! – conciliator

संबंधित मुद्दे