XSD: Определите элемент с любым именем

Из-за ограничений определенных систем мы должны использовать XMLs, которые отформатированы немного неудобно. Они мы должны преобразовать в удобную форму.

Вопрос: как делают я определяю в схеме XSD элемент, который имеет следующие свойства:

  • Не имеет никаких детей
  • Не имеет никаких атрибутов
  • Имеет любое имя (это - то, что вызывает проблемы),
8
задан GSerg 18 January 2010 в 09:55
поделиться

1 ответ

Можно использовать элемент вместе с атрибутом Xml Schema Instance type.

Схема

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="root">
        <xsd:complexType>
            <xsd:sequence maxOccurs="unbounded">
                <xsd:any processContents="strict" namespace="##local"></xsd:any>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:simpleType name="st">
        <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
</xsd:schema>

Тест Xml экземпляра

<?xml version="1.0" encoding="utf-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- valid -->
    <one xsi:type="st">value one</one>
    <emptyone xsi:type="st"/>

    <!-- invalid -->
    <two name="myname" xsi:type="st">value two</two>

    <!-- invalid -->
    <three xsi:type="st">
        <four xsi:type="st">value four</four>
    </three>
</root>

Заключение

Вы не можете применить простой тип в xsd схеме только .

6
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: