मेरे पास xml फ़ाइलें हैं जिन्हें मैंने रनटाइम पर पढ़ा है, xml फ़ाइल को रनटाइम पर xml फ़ाइल के विरुद्ध मान्य करना संभव है?रनटाइम पर कोड का उपयोग कर xsd के खिलाफ xml को मान्य करना संभव है?
उत्तर
इस प्रयास करें:
public void ValidateXmlDocument(
XmlReader documentToValidate, string schemaPath)
{
XmlSchema schema;
using (var schemaReader = XmlReader.Create(schemaPath))
{
schema = XmlSchema.Read(schemaReader, ValidationEventHandler);
}
var schemas = new XmlSchemaSet();
schemas.Add(schema);
var settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas = schemas;
settings.ValidationFlags =
XmlSchemaValidationFlags.ProcessIdentityConstraints |
XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += ValidationEventHandler;
using (var validationReader = XmlReader.Create(documentToValidate, settings))
{
while (validationReader.Read())
{
}
}
}
private static void ValidationEventHandler(
object sender, ValidationEventArgs args)
{
if (args.Severity == XmlSeverityType.Error)
{
throw args.Exception;
}
Debug.WriteLine(args.Message);
}
आशा का उपयोग कर ग # इस लिंक में मदद करता है:
लिंक सभ्य लग रहा है, लेकिन मैं उदाहरण एक XmlValidatingReader, जो अप्रचलित है उपयोग कर रहा है। स्टॉक XmlReader और XmlReaderSettings पर एक नज़र डालें जिसमें व्यवहार को परिभाषित करने के लिए कुछ प्रमाणीकरण गुण शामिल हैं। – STW
मैं कोड बहुत मिल गया! मैं अपने परीक्षणों में इस का उपयोग करें:
public static bool IsValid(XElement element, params string[] schemas)
{
XmlSchemaSet xsd = new XmlSchemaSet();
XmlReader xr = null;
foreach (string s in schemas)
{ // eh, leak 'em.
xr = XmlReader.Create(
new MemoryStream(Encoding.Default.GetBytes(s)));
xsd.Add(null, xr);
}
XDocument doc = new XDocument(element);
var errored = false;
doc.Validate(xsd, (o, e) => errored = true);
if (errored)
return false;
// If this doesn't fail, there's an issue with the XSD.
XNamespace xn = XNamespace.Get(
element.GetDefaultNamespace().NamespaceName);
XElement fail = new XElement(xn + "omgwtflolj/k");
fail.SetAttributeValue("xmlns", xn.NamespaceName);
doc = new XDocument(fail);
var fired = false;
doc.Validate(xsd, (o, e) => fired = true);
return fired;
}
यह एक (फ़ाइल संसाधनों विधानसभा के अंदर) के तारों के रूप में स्कीमा में लेता है और उन्हें एक स्कीमा सेट करने के लिए कहते हैं। मैं मान्य करता हूं और यदि यह मान्य नहीं है तो मैं झूठी वापसी करता हूं।
यदि एक्सएमएल अमान्य नहीं पाया गया है, तो मैं यह सुनिश्चित करने के लिए एक नकारात्मक जांच करता हूं कि मेरी योजनाएं खराब नहीं हुई हैं। यह मूर्खतापूर्ण गारंटी नहीं है, लेकिन मैंने इसका इस्तेमाल अपने स्कीमा में त्रुटियों को खोजने के लिए किया है।
आप 'XmlSchema.Read' विधि का उपयोग करने का प्रयास करना चाहेंगे, क्योंकि यह इसे पार्स करते समय स्कीमा को मान्य कर सकता है। कोड के लिए –
धन्यवाद :) – BigOmar
सरल समाधान ..
try
{
XmlReaderSettings Xsettings = new XmlReaderSettings();
Xsettings.Schemas.Add(null, "personDivideSchema.xsd");
Xsettings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.Load("person.xml");
XmlReader reader = XmlReader.Create(new StringReader(document.InnerXml), Xsettings);
while (reader.Read());
}
catch (Exception e)
{
Console.WriteLine(e.Message.ToString());
}
- 1. xsd schema के खिलाफ बड़े xml को कैसे सत्यापित करें?
- 2. एक्सएसडी के खिलाफ एक्सएमएल फाइलों को वैध करने के लिए मैं PowerShell का उपयोग कैसे करूं?
- 3. रनटाइम पर कोड हस्ताक्षर पहचान प्राप्त करना?
- 4. क्या रनटाइम पर जंग कोड उत्पन्न करना और निष्पादित करना संभव है?
- 5. क्या स्कीमा का उपयोग कर किसी XML दस्तावेज़ में मूल तत्व को परिभाषित करना संभव है?
- 6. मौजूदा डेटाबेस के खिलाफ ईएफ कोड पहला मॉडल मान्य करें
- 7. रनटाइम पर कोड अनुबंध
- 8. क्या मैं एक्सएमएल स्कीमा के खिलाफ XPath अभिव्यक्ति को मान्य कर सकता हूं?
- 9. क्या जावास्क्रिप्ट में xsd के विरुद्ध xml को सत्यापित करने का कोई क्रॉस-प्लेटफ़ॉर्म तरीका है?
- 10. क्या ओरेकल स्थानीय फाइल सिस्टम पर एक्सएसडी स्कीमा का उपयोग कर एक्सएमएल को मान्य कर सकता है?
- 11. रनटाइम पर टेम्पलेटहस्केल जेनरेट कोड उत्पन्न करना और चलाने के लिए संभव है?
- 12. रनटाइम पर प्रोग्राम का कोड पता ढूंढें?
- 13. रनटाइम पर कक्षा सारांश प्राप्त करना संभव है?
- 14. ग्रहण: xsd
- 15. डोमेन पर XMLHttpRequest का उपयोग करना संभव है
- 16. xsd
- 17. क्या सरल xml का उपयोग कर एक XML टैग में टिप्पणी टैग डालना संभव है?
- 18. क्यूटी सी ++ एक्सएमएल, डीटीडी के खिलाफ मान्य है?
- 19. XDocument में अमान्य XML नोड को कैसे खोजें जो स्कीमा के खिलाफ मान्य है (XmlSchemaValidationException.SourceObject शून्य है)
- 20. क्या .NET में रनटाइम पर नया कोड संकलित और निष्पादित करना संभव है?
- 21. जावा में एक्सएसडी के खिलाफ एक्सएमएल मान्य करें/स्कीमालोकेशन
- 22. एक xsd में xml को परिभाषित करना जहां एक विशेषता संभावित सामग्री निर्धारित करती है
- 23. स्वरूपण के खिलाफ कोड का फ्रीज
- 24. पर xml फ़ाइल में मान्य है या नहीं?
- 25. जावास्क्रिप्ट का उपयोग कर एसएसएच से कनेक्ट करना संभव है?
- 26. एक्सएमएल प्रमाणीकरण - एकाधिक xsd के
- 27. मैं प्रतिबिंब का उपयोग कर रनटाइम पर जेनरेट किए गए आईएल कोड को कैसे डिबग करूं।
- 28. xsd से xsd फ़ाइल को .NET
- 29. क्या यह निर्धारित करने के लिए उद्देश्य-सी रनटाइम सुविधाओं का उपयोग करना संभव है?
- 30. XML सत्यापित
यह सबसे तेज़ है, मैंने उपयोग किया है। –