В конечном счете, я хотел бы создать пример файла xml на основе схемы XSD в приложении Flask, а затем экспортировать входные данные как действительный файл xml.
Я использую xmlschema пакет тоже.
У меня есть структура basi c приложения flask и страница с выпадающим меню, отображающим элементы из XSD.
@app.route('/xml_builder')
def xml_builder():
xs = xmlschema.XMLSchema('schema_file.xsd')
dict = sorted(xs.maps.elements.keys())
return render_template('public/xml-builder.html', get = dict)
Однако я изо всех сил чтобы понять / понять, как заставить его отображать только элементы из основного xsd (схема file.xsd, как описано далее) - при выборе этого элемента из выпадающего меню он должен отображать соответствующие подэлементы / атрибуты из другого xsd файл (schema_types.xsd, как описано далее) в виде меток с текстовым полем рядом с ним, чтобы пользователь мог ввести значение.
Схема состоит из нескольких схем
schema_file.xsd is основная схема и описывает структуру xml файла
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="schema_types.xsd" />
<xsd:complexType name="InfoData">
<xsd:sequence>
<xsd:element name="Shop"
type="test:ShopType"
maxOccurs="unbounded" />
<xsd:element name="Town"
type="test:TownType"
minOccurs="0"
maxOccurs="unbounded" />
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
, а файл schema_types.xsd содержит структуру для элемента
<xsd:complexType name="ShopType">
<xsd:sequence>
<xsd:element name="Country"
type="xsd:string"
minOccurs="0">
</xsd:element>
<xsd:element name="City"
type="xsd:string"
minOccurs="0">
</xsd:element>
<xsd:element name="Note"
type="xsd:string"
minOccurs="0"
maxOccurs="unbounded">
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id"
type="xsd:string"
use="required">
</xsd:attribute>
<xsd:attribute name="name"
type="xsd:string"
use="required">
</xsd:attribute>
</xsd:complexType>
Любое направление / г Руководство будет очень признателен