Получение действительно странной проблемы сегодня при попытке проверить XML с помощью XSD. Глядя на XML, который я предоставляю, он выглядит правильно.XDocument.Validate return Элемент имеет недопустимый дочерний элемент
Ошибка я получаю от XDocument.Validate является: Элемент «НАЗНАЧЕНИЯ» был недействительным дочерний элемент «НАЗНАЧЕНИЯ»
Вот XML я использую:
<PATIENTS>
<PATIENT>
<APPOINTMENTS>
<APPOINTMENT>
<UserInitials>123</UserInitials>
<Date>Some Date</Date>
<ApptTime>14:30</ApptTime>
<Duration>00:15</Duration>
<AppointmentStatus>Complete</AppointmentStatus>
<Notes>Some note</Notes>
<TreatmentType>Some Appoinment type</TreatmentType>
</APPOINTMENT>
</APPOINTMENTS>
</PATIENT>
</PATIENTS>
И файл XSD я против проверки:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="PATIENTS">
<xs:complexType>
<xs:sequence>
<xs:element name="PATIENT" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="APPOINTMENTS" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="APPOINTMENT" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="UserInitials" type="xs:string" minOccurs="1"></xs:element>
<xs:element name="Date" type="xs:string" minOccurs="1"></xs:element>
<xs:element name="ApptTime" type="xs:string" minOccurs="1"></xs:element>
<xs:element name="Duration" type="xs:string" minOccurs="1"></xs:element>
<xs:element name="AppointmentStatus" type="xs:string" minOccurs="1"></xs:element>
<xs:element name="LegacyTypeID" type="xs:string" minOccurs="0"></xs:element>
<xs:element name="AClinic" minOccurs="0"></xs:element>
<xs:element name="Notes" type="xs:string" minOccurs="0"></xs:element>
<xs:element name="Info" type="xs:string" minOccurs="0"></xs:element>
<xs:element name="TreatmentType" type="xs:string" minOccurs="0" default="Examination"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Я не совсем понимаю, что происходит, похоже, что теги Appointments и Appointments соответствуют XSD-файлу.
Остальная часть документа XML выглядит корректно, если только не возникает проблема с файлом XSD.
У меня есть другие элементы внутри моего пациента, которые работают нормально.
Я не могу воспроизвести проблему с консольным приложением .NET 4.5 C#, выполняющим 'XmlSchemaSet schemaSet = новый Xml SchemaSet(); schemaSet.Add (null, "../../XMLSchema1.xsd"); XDocument doc = XDocument.Load ("../../ XMLFile1.xml"); doc.Validate (schemaSet, (o, valArgs) => { Console.WriteLine ("{0}: {1}", valArgs.Severity, valArgs.Message); }); 'и ваши предоставленные файлы. –
Спасибо за быстрый ответ Мартин, я также пробовал, что вы сделали, это должно быть что-то перед элементом Appointment/Appointments, вызывающим проблему, поскольку это сработало, когда я просто использовал эти файлы. –
Можете ли вы предоставить какие-либо образцы, позволяющие нам воспроизвести проблему? –