Я новичок в проверке схемы, и у меня есть код, который выполняет проверку схемы с помощью «ValidationType.Schema».
Есть несколько тегов, которые являются необязательными в моем выходном файле XML, и для проверки этого я установил соответствующие теги файла XSD как «MinOccurs = 0», однако я все еще получаю ошибки проверки схемы с ошибками.
Я не могу понять, является ли SEQUENCE, в которой теги упоминаются в XSD, также имеет значение SEQUENCE из тегов в XML-файле или это только подтверждает достоверность.
Ex:
ПРИМЕР 1:
--- ВЫВОД XML --- <tag1>1</tag1>
<tag2>2</tag2>
---- XSD файлов <tag1>
<tag2>
ПРИМЕР 2:
--- ВЫВОД XML --- <tag2>1</tag2>
<tag1>2</tag1>
---- XSD-файл <tag1>
<tag2>
который один из них потерпит неудачу? если таковые имеются?
Я использую тип проверки как «ValidationType.Schema»
Спасибо за помощь.ValidationType.Schema validation
0
A
ответ
0
@ user1705851, порядок узлов имеет значение, поскольку элемент может иметь одно и то же имя, но вы можете избежать этого, используя все атрибуты в xsd. Рабочий код ваших узлов приведен ниже.
Imports System.Xml.Schema
Module Module1
Dim errors As Boolean = False
Sub Main()
Dim xsdMarkup As XElement = _
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<xsd:element name='Root'>
<xsd:complexType>
<xsd:all>
<xsd:element name='tag1' minOccurs='0' maxOccurs='1'/>
<xsd:element name='tag2' minOccurs='0' maxOccurs='1'/>
</xsd:all>
</xsd:complexType>
</xsd:element>
Dim schemas As XmlSchemaSet = New XmlSchemaSet()
schemas.Add("", xsdMarkup.CreateReader)
Dim doc1 As XDocument = _
<?xml version='1.0'?>
<Root>
<tag1>1</tag1>
<tag2>2</tag2>
</Root>
Dim doc2 As XDocument = _
<?xml version='1.0'?>
<Root>
<tag2>1</tag2>
<tag1>2</tag1>
</Root>
Console.WriteLine("Validating doc1")
errors = False
doc1.Validate(schemas, AddressOf XSDErrors)
Console.WriteLine("doc1 {0}", IIf(errors = True, "did not validate", "validated"))
Console.WriteLine()
Console.WriteLine("Validating doc2")
errors = False
doc2.Validate(schemas, AddressOf XSDErrors)
Console.WriteLine("doc2 {0}", IIf(errors = True, "did not validate", "validated"))
Console.ReadLine()
End Sub
Private Sub XSDErrors(ByVal o As Object, ByVal e As ValidationEventArgs)
Console.WriteLine("{0}", e.Message)
errors = True
End Sub
End Module
Смежные вопросы
- 1. JSON schema- Validation validation
- 2. Validation
- 3. bean validation get validation groups
- 4. Regula Form Validation Crashes on validation
- 5. jquery validation engine ajax field validation failing
- 6. AngularJS validation show validation msg on submit
- 7. Unexecuted validation with jquery validation plugin
- 8. custom xsd validation validation using spring validator
- 9. jQuery validation engine custom javascript validation
- 10. javascript date validation not validation 31 февраля
- 11. TextField Validation
- 12. xslt validation
- 13. MVC2 Validation
- 14. DataGridView Validation
- 15. Struts2 Validation
- 16. Raptor- Validation
- 17. Bootstrap Validation
- 18. Xcode Validation
- 19. Validation рамки
- 20. Проблемы Validation
- 21. React.js Validation
- 22. Password Validation
- 23. jgrid validation
- 24. JAXB Validation
- 25. accepts_nested_attributes_for validation
- 26. SharedPreferences Validation
- 27. Validation окна
- 28. Validation Group
- 29. Validation uploadify
- 30. EmailAddressAttribute Validation
возможно дубликат http://stackoverflow.com/questions/7448616/why-is-node-order-important-in-xml – Anil