Импорт XML-схемы из URL в файл - PullRequest
0 голосов
/ 10 декабря 2018

Я сгенерировал клиента из веб-службы в моем проекте Java EE, который генерирует следующий код.

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "base64Binary", propOrder = {
"value"
})  public class Base64Binary {

@XmlValue
protected byte[] value;
@XmlAttribute(name = "contentType", namespace = "http://www.w3.org/2005/05/xmlmime")
protected String contentType;

Моя проблема заключается в том, что вызов http://www.w3.org/2005/05/xmlmime блокируется нашим брандмауэром.Изменение вызова на https не работает, потому что оно перенаправляется на http.Я хотел бы импортировать схему xml, содержащуюся в http://www.w3.org/2005/05/xmlmime, в файл в моем проекте и изменить значение namespace на файл.Схема, содержащаяся в http://www.w3.org/2005/05/xmlmime, является

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
       targetNamespace="http://www.w3.org/2005/05/xmlmime" >

  <xs:attribute name="contentType">
    <xs:simpleType>
      <xs:restriction base="xs:string" >
      <xs:minLength value="3" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>

  <xs:attribute name="expectedContentTypes" type="xs:string" />

  <xs:complexType name="base64Binary" >
    <xs:simpleContent>
        <xs:extension base="xs:base64Binary" >
            <xs:attribute ref="xmime:contentType" />
        </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="hexBinary" >
    <xs:simpleContent>
        <xs:extension base="xs:hexBinary" >
            <xs:attribute ref="xmime:contentType" />
        </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

</xs:schema>

. Я нашел несколько вопросов об этой проблеме, и создание локальной копии представляется приемлемым решением, но поскольку сам файл схемы ссылается на URL http в

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
       targetNamespace="http://www.w3.org/2005/05/xmlmime" >

Я не уверен, как изменить его, чтобы все указывало на мою локальную копию.

1 Ответ

0 голосов
/ 10 декабря 2018

Этот вопрос показывает мое незнание XML.Проблема была не в коде, который я перечислил, а в другом файле, в который он импортировал схему.

<xs:import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="http://www.w3.org/2005/05/xmlmime"/>

Я создал файл wsd в той же папке, что и файл wsdl, который содержалимпортировать код.Затем я скопировал xml из http://www.w3.org/2005/05/xmlmime и поместил в файл wsd.Затем я изменил код импорта на

<xs:import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="nameOfLocalCopyOfXml.xsd"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...