xsi: nil не проходит проверку при анализе в xs: any - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть схема, содержащая (например) ...

<xsd:complexType name="mytype">
  <xsd:sequence>
    <xsd:any maxOccurs="unbounded" processContents="skip"/>
  </xsd:sequence>
</xsd:complexType>

... и некоторый XML, содержащий этот элемент ...

<MYELEMENT xmlns = "http://www.mynamespace.co.uk/types" xsi:nil = "true"/>

... У меня естьSOAP-вызов, ожидающий возврата «mytype».Когда я возвращаю XML, содержащий вышеуказанное, я получаю следующую ошибку:

, вызванную: org.xml.sax.SAXException: ошибка проверки: # cvc-elt.3.1 Элемент "{http://www.mynamespace.co.uk/types}MYELEMENT"не может быть пустым. ({com.tibco.xml.validation} COMPLEX_E_ELEMENT_NOT_NILLABLE)

Это вызов SOAP, выполняемый в конструкторе TIBCO 5.5. Я понимаю, что TIBCO не является самым известным инструментом в мире;что я действительно хочу вывести из этого вопроса, так это то, является ли ошибка ожидаемым поведением (возможно, потому что элемент имеет определенное пространство имен ???) или нет.

Я бы подумал, что processContents="skip" должен позволятьчто-нибудь через?

Просто для завершения информации, пространству имен http://www.mynamespace.co.uk/types доступно для получателя SOAP.Я получаю эту ошибку независимо от того, определено ли 'MYELEMENT' в схеме или нет, с или безnillable="true". Я получаю XML от клиента и поэтому не могу удалить xsi: nil = "true" из MYELEMENT.

1 Ответ

0 голосов
/ 05 декабря 2011

Я обнаружил, что это ошибка TIBCO Designer 5.5.Используйте 5,6 или выше.

...