Создайте XSD, который можно импортировать в EXCEL с ограничениями на основе значений элементов

Я искал в Интернете какое-то время, и из того, что я могу сказать, чего я хочу, невозможно с помощью XSD 1.0. Мое требование:

У нас есть .xml, которые создают следующую таблицу при импорте в excel:

введите описание изображения здесь

Требование только одно, что значения под Bird 1,2,3 ограничены от диапазона каждого Min & Max каждой функции.

Например, вес птицы 1 должен составлять от 10 до 20, а высота птицы 1 – от 3 до 9.

Под птицей 3 вес и высота недействительны, потому что они находятся за пределами диапазона min-max.

Теперь мне нужно сделать XSD-файл, который можно импортировать в Excel, и что он создает ограничение, которое делает вышеизложенное.

XSD, который я сделал, это:

xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Root"> <xs:complexType> <xs:sequence> <xs:element name="Row" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="Feature"/> <xs:element type="xs:int" name="Min"/> <xs:element type="xs:int" name="Max"/> <xs:element name="Bird 1"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="X"/> <!-- X= The Min value --> <xs:maxInclusive value="Y"/> <!-- Y= The Max value --> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Bird 2"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="X"/> <!-- X= The Min value --> <xs:maxInclusive value="Y"/> <!-- Y= The Max value --> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Bird 3"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="X"/> <!-- X= The Min value --> <xs:maxInclusive value="Y"/> <!-- Y= The Max value --> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 

XSD выше работает только в том случае, если в значениях ограничения имеются фиксированные числа.

В идеале я хотел бы иметь ограничение minInclusive и maxInclusive, указывающее на элемент Min Max.

Если бы я мог использовать XSD 1.1 или что-то еще похожее на схему, это было бы возможно. Но поскольку мне нужен xsd для импорта в Excel, я вынужден использовать XSD 1.0.

В настоящее время я пытаюсь выяснить способ сделать это с помощью Key и Key-ref на примере примера, но до сих пор мне не повезло.

Любое предложение или обходное решение, чтобы сделать эту работу ???

заранее спасибо

Действительно, с помощью XML Schema 1.1 вы можете определить дополнительные ограничения с помощью XPath.

Однако у меня есть комментарий к модели данных. Короче говоря, я бы предложил обмен строк и столбцов на логическом уровне. Если я правильно предполагаю, что новые птицы будут добавляться чаще, чем новые функции, схема должна быть оптимизирована для этого, что происходит, чтобы обойти проблему.

Если характеристики птиц (возраст, вес, высота) известны заранее или редко меняются, я бы рассматривал их как типы XML-схем, а не ряды. Таким образом, минимальные и максимальные значения могут быть сохранены в XML-схеме (как указано выше) и будут применяться ко всем птицам, и это должно быть достигнуто с помощью XML Schema 1.0.

Птицы могли бы стать первоклассными гражданами и стать «строками XML», в то время как их функции могут стать их свойствами (но ничто не мешает отображать их как столбцы в excels, а их дочерние элементы – как строки):

 <birds> <bird id="Bird 1"> <age>5</age> <weight>15</weight> <height>4</height> </bird> <bird id="Bird 2"> <age>9</age> <weight>12</weight> <height>7</height> </bird> <bird id="Bird 3"> <age>2</age> <weight>22</weight> <height>2</height> </bird> </birds> 
  • Как конвертировать XSD-файл в XLS
  • XSD-сопоставление в Excel для генерации многократных экземпляров XML-элементов
  • Есть ли способ заставить Excel сохранить атрибуты XML в корневом элементе?
  • Протоколы должны соответствовать исключению при загрузке большого файла (GWT)
  • Импорт XML-схемы в Excel 2016: несколько файлов схемы
  • У кого-нибудь есть XSD для XMLSS?
  • Excel в XML, когда XSD включает рекурсивные структуры в виде списка списков
  • Excel 2007 XML Source Maps - обновляющие схемы
  • Как экспортировать данные из Excel в действительный Xml?
  • XML-схема для экспорта XML-XML
  • Использование таблицы стилей для преобразования данных Excel в XML
  • Interesting Posts

    Установите RGB () с помощью VBA в excel 2013, откройте этот файл с помощью excel 2007, цвет фона ячейки отличается тем, что я установил

    Открыть сохраненную ReflectionIBM.Session с помощью vba

    Средняя разница между временами в Excel?

    Неверный вызов или аргумент процедуры на split mac excel vba

    Как повторить небольшую строку рядом с большими строками в CSV-файле? (Функция VLOOKUP, может быть?)

    Макросы VB в excel 2016 для группы по нескольким столбцам

    не может получить ближайшее значение столбца, используя Match in excel

    Как я могу закрыть файл Excel с помощью pywinauto

    Самосознание для ячейки, столбца и строки в функциях листа

    Копировать строки в столбцы с помощью VBA

    Создание рабочей книги Excel с помощью приложения для рабочего стола Visual Studio. Нажмите кнопку «Заполнить» и заполнить данные sql <resolved>

    VBA: добавление и удаление листов из списка

    SumIf by Weekday & User

    C # Метод автоподбора для листа excel

    Импорт таблиц SQL Server Excel

    Давайте будем гением компьютера.