проверить xml с помощью xsd из другого пакета с указанием относительного пути к xsd - PullRequest
0 голосов
/ 17 мая 2018

У меня есть fonts.xml

<!-- name="default" version="110" -->

<fonts 
     xmlns="http://www.example.org/fonts"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.example.org/fonts file:///V:\V1220\com.java.mypackage\src\main\resources\fonts\fonts.xsd">
    <font fontName="defaultRegular" fontSize="17" fontFamily="Roboto-Regular"/>
    <font fontName="defaultLight" fontSize="17" fontFamily="Roboto-Light"/>
    <font fontName="defaultMedium" fontSize="17" fontFamily="Roboto-Medium"/>
    <font fontName="defaultBold" fontSize="17" fontFamily="Roboto-Bold"/>
    <font fontName="intermediateLight" fontSize="16" fontFamily="Roboto-Light"/>
    <font fontName="intermediateRegular" fontSize="16" fontFamily="Roboto-Regular"/>
    <font fontName="intermediateMedium" fontSize="16" fontFamily="Roboto-Medium"/>
    <font fontName="intermediateBold" fontSize="16" fontFamily="Roboto-Bold"/>
    <font fontName="smallLight" fontSize="14" fontFamily="Roboto-Light"/>
    <font fontName="smallRegular" fontSize="14" fontFamily="Roboto-Regular"/>
    <font fontName="smallMedium" fontSize="14" fontFamily="Roboto-Medium"/>
    <font fontName="smallBold" fontSize="14" fontFamily="Roboto-Bold"/>
    <font fontName="smallerLight" fontSize="12" fontFamily="Roboto-Light"/>
    <font fontName="tinyLight" fontSize="10" fontFamily="Roboto-Light"/>
    <font fontName="bigRegular" fontSize="21" fontFamily="Roboto-Regular"/>
</fonts>

и fonts.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/fonts"
xmlns:tns="http://www.example.org/fonts"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
  <xs:element name="font">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute type="xs:string" name="fontName" use="required"/>
          <xs:attribute type="xs:byte" name="fontSize" use="required"/>
          <xs:attribute type="xs:string" name="fontWeight" use="optional"/>
          <xs:attribute type="xs:string" name="fontFamily" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="fonts">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="font" maxOccurs="unbounded" minOccurs="0">
          <xs:annotation>
            <xs:documentation>what can be changed here are the values from fontSize, fontWeight and fontFamily
          or you can add a new Font but DO NOT DELETE a font or CHANGE the values from the fontName</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="fonts" type="fonts"/>


</xs:schema>

Прямо сейчас, если я, например, удаляю атрибут fontName, я получаю сообщение об ошибке в редакторе Eclipse. Я хочу сохранить это поведение, но без указания schemaLocation абсолютного пути к моему xsd. Мои xsd и xml файлы находятся в разных пакетах. Вы знаете, как я могу справиться с этим? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...