Обаждам се на уеб услуга и бих искал да потвърдя сапунения отговор с xsd валидиране. Наистина не искам да правя стриктно xsd валидиране, просто искам да знам дали някакъв елемент „История“ присъства в отговора.
Така че проверката на xsd трябва да бъде успешна, когато има „елемент на историята“ и да се провали, когато този елемент не присъства. Започвам с xsd по-долу. Просто искам да го разширя с моя задължителен елемент "История". Как мога да постигна това?
XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="Envelope">
<xsd:complexType>
<xsd:sequence>
<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Сапунен отговор
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<p793:TuDetailsResponse xmlns:p793="http://gls-group.eu/Tracking/">
<p793:History>
<p793:Date>
<p793:Year>2012</p793:Year>
<p793:Month>10</p793:Month>
<p793:Day>12</p793:Day>
<p793:Hour>9</p793:Hour>
<p793:Minut>52</p793:Minut>
<p793:ReasonName/>
</p793:History>
<p793:History>
<p793:Date>
<p793:Year>2012</p793:Year>
<p793:Month>10</p793:Month>
<p793:Day>12</p793:Day>
<p793:Hour>5</p793:Hour>
<p793:Minut>45</p793:Minut>
</p793:Date>
<p793:ReasonName/>
</p793:History>
</p793:TuDetailsResponse>
</soapenv:Body>
</soapenv:Envelope>