Вопрос:
Я новичок в XML и XSD, и я пытался проверить этот xsd-код на xml файл, но без каких-либо успехов. Я получаю ошибку ниже, и я не вижу, что не так. Любая помощь будет оценена.
s4s-elt-invalid-content.1: Недопустимое содержимое “#AnonType_endangered_species”. Элемент “элемент” недействителен, неуместен или встречается слишком часто.
<?xml version=»1.0″ encoding=»UTF-8″?> <xsd:schema xmlns:xsd=»http://www.w3.org/2001/XMLSchema»> <xsd:element name=»endangered_species»> <xsd:complexType> <xsd:element name=»animal» type=»xsd:string» minOccurs=»1″ maxOccurs=»unbounded»> <xsd:complexType> <xsd:sequence> <xsd:element name=»name» minOccurs=»2″ maxOccurs=»2″ type=»xs:string»> <xsd:complexType> <xsd:all> </xsd:all> <xsd:attribute ref=»language»> <xsd:simpleType> <xsd:restriction base=»xsd:string»> <xsd:enumeration value=»English»/> <xsd:enumeration value=»Latin»/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:complexType> </xsd:element> </xsd:schema> Лучший ответ:
xsd:element тег неуместен. Вы не можете иметь xsd:element как дочерний xsd:element xsd:contentType.
Вероятно, вы захотите разместить его внутри группы, например, последовательности:
<xsd:complexType> <xsd:sequence> <xsd:element …> … …
У вас также есть другие проблемы в этом XSD. Вы должны выбрать, будете ли вы иметь вложенные элементы complexType или если вы собираетесь объявить простой тип. Вы можете исправить это, удалив атрибуты type=»xsd:string» из вложенных xs:element.
Наконец, вы либо ссылаетесь на атрибут (который отсутствует в вашем XSD), либо называете его. Поскольку у вас есть вложенный тип, вы, вероятно, не хотите ссылаться на него. Поэтому измените <xsd:attribute ref=»language»> на <xsd:attribute name=»language»>.