Ошибка XSD: элемент 'element' недопустим, смещен или встречается слишком часто - PullRequest
0 голосов
/ 13 мая 2018

Я пытался проверить мой XSD-файл, но все равно получаю сообщение об ошибке и не могу найти решение.

Error

Недействительно.
Ошибка - Строка 41, 31: org.xml.sax.SAXParseException; номер строки: 41; номер столбца: 31; s4s-elt-invalid-content.1: содержимое CVType недопустимо. Элемент 'element' недопустим, смещен или встречается слишком часто.
Ошибка - строка 50, 29: org.xml.sax.SAXParseException; номер строки: 50; номер столбца: 29; s4s-elt-invalid-content.1: Недопустимое содержимое элемента detailType. Элемент 'element' недопустим, смещен или встречается слишком часто.
Ошибка - Строка 56, 30: org.xml.sax.SAXParseException; номер строки: 56; номер столбца: 30; s4s-elt-invalid-content.1: Недопустимое содержимое «NameType». Элемент 'element' недопустим, смещен или встречается слишком часто.
Ошибка - Строка 67, 30: org.xml.sax.SAXParseException; номер строки: 67; номер столбца: 30; s4s-elt-invalid-content.1: Недопустимое содержимое «educationType». Элемент 'element' недопустим, смещен или встречается слишком часто.
Ошибка - Строка 84, 33: org.xml.sax.SAXParseException; номер строки: 84; номер столбца: 33; s4s-elt-invalid-content.1: Недопустимое содержимое EmphistoryType. Элемент 'element' недопустим, смещен или встречается слишком часто.
Ошибка - строка 118, 40: org.xml.sax.SAXParseException; номер строки: 118; номер столбца: 40; InvalidRegex: значение шаблона '^ [\ w -_.] * [\ W -.] \ @ [\ W]. + [\ W] + [\ w] $' не является допустимым регулярным выражением. Сообщение об ошибке было следующим: «Конечная кодовая точка диапазона меньше начальной кодовой точки».

XSD файл

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com" elementFormDefault="qualified">


<!--DECLARING ELEMENTS-->
<!--Simple type elements-->

<xsd:element name="fname" type="xsd:string"></xsd:element>
<xsd:element name="sname" type="xsd:string"></xsd:element>
<xsd:element name="Title" type="xsd:string"></xsd:element>
<xsd:element name="position" type="xsd:string"></xsd:element>
<xsd:element name="Type" type="xsd:string"></xsd:element>
<xsd:element name="PlaceObtained" type="xsd:string"></xsd:element>
<xsd:element name="place" type="xsd:string"></xsd:element>
<xsd:element name="DateStarted" type="xsd:string"></xsd:element>
<xsd:element name="DateFinished" type="xsd:string"></xsd:element>
<xsd:element name="description" type="xsd:string"></xsd:element>
<xsd:element name="intrest" type="xsd:string"></xsd:element>
<xsd:element name="reference" type="xsd:string"></xsd:element>

<!--Custom Type Elements-->
<xsd:element name="cv" type="CVType"></xsd:element>
<xsd:element name="detail" type="detailType"></xsd:element>
<xsd:element name="Name" type="NameType"></xsd:element>
<xsd:element name="Educations" type="EducationsType"></xsd:element>
<xsd:element name="education" type="educationType"></xsd:element>
<xsd:element name="Emphistorys" type="EmphistorysType"></xsd:element>
<xsd:element name="Emphistory" type="EmphistoryType"></xsd:element>
<xsd:element name="TechSkill" type="TechSkillType"></xsd:element>
<xsd:element name="intrests" type="intrestsType"></xsd:element>
<xsd:element name="email" type="emailType"></xsd:element>
<xsd:element name="contact" type="contactType"></xsd:element>
<xsd:element name="descripts" type="descriptsType"></xsd:element>
<xsd:element name="ref" type="refType"></xsd:element>


<!--DECLARING THE STRUCTURE-->
<!--Defining the structure-->

<xsd:complexType name="CVType">
    <xsd:element ref="detail"></xsd:element>
    <xsd:element ref="Educations"></xsd:element>
    <xsd:element ref="Emphistorys"></xsd:element>
    <xsd:element ref="TechSkill"></xsd:element>
    <xsd:element ref="intrests"></xsd:element>
    <xsd:element ref="ref"></xsd:element>
</xsd:complexType>

<xsd:complexType name="detailType">
    <xsd:element ref="Name"></xsd:element>
    <xsd:element ref="email"></xsd:element>
    <xsd:element ref="contact"></xsd:element>
</xsd:complexType>

<xsd:complexType name="NameType">
    <xsd:element ref="fname"></xsd:element>
    <xsd:element ref="sname"></xsd:element>
</xsd:complexType>

<xsd:complexType name="EducationsType">
    <xsd:sequence minOccurs="1" maxOccurs="unbounded">
        <xsd:element ref="education"></xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="educationType">
    <xsd:element ref="Title"></xsd:element>
   <xsd:element ref="Type"></xsd:element>
    <xsd:element ref="PlaceObtained"></xsd:element>
    <xsd:element ref="DateStarted"></xsd:element>
    <xsd:element ref="DateFinished"></xsd:element>
    <xsd:sequence minOccurs="1" maxOccurs="5">
        <xsd:element ref="Description"></xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="EmphistorysType">
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="Emphistory"></xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="EmphistoryType">
    <xsd:element ref="position"></xsd:element>
    <xsd:element ref="place"></xsd:element>
    <xsd:element ref="DateStarted"></xsd:element>
    <xsd:element ref="DateFinished"></xsd:element>
    <xsd:element ref="descripts"></xsd:element>
</xsd:complexType>

<xsd:complexType name="descriptsType">
    <xsd:sequence minOccurs="1" maxOccurs="unbounded">
        <xsd:element ref="description"></xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="TechSkillType">
    <xsd:sequence minOccurs="1" maxOccurs="unbounded">
        <xsd:element ref="description"></xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="intrestsType">
    <xsd:sequence minOccurs="1" maxOccurs="10">
        <xsd:element ref="intrest"></xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="refType">
    <xsd:sequence minOccurs="1" maxOccurs="5">
        <xsd:element ref="reference"></xsd:element>
    </xsd:sequence>
</xsd:complexType>

<!--Declaring types with RegEx-->

<xsd:simpleType name="emailType">
    <xsd:restriction base="xsd:string">
        <xsd:pattern value="^[\\w-_\.]*[\\w-\.]\@[\\w]\.+[\\w]+[\\w]$"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="contactType">
    <xsd:restriction base="xsd:integer">
        <xsd:pattern value="^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}$"/>
    </xsd:restriction>
</xsd:simpleType>
</xsd:schema>

1 Ответ

0 голосов
/ 13 мая 2018

В XSD сообщается о двух категориях ошибок:

  1. Элемент 'element' недопустим, смещен или встречается слишком часто.

    Объявления элементов (xsd:element) не могут отображаться как дочерние элементы для xsd:complexType напрямую. Используйте оболочки xsd:sequence, xsd:all или xsd:choice; похоже, что вы, вероятно, хотите xsd:sequence.

  2. Ошибка - строка 118, 40: org.xml.sax.SAXParseException; номер строки: 118; номер столбца: 40; InvalidRegex: значение шаблона '^ [\ w -_.] * [\ W -.] \ @ [\ W]. + [\ W] + [\ w] $' не является допустимым регулярным выражением. Сообщается об ошибке: «Кодовая точка конца диапазона меньше начальной кодовой точки».

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

    <xsd:pattern value="[^@]+@[^\.]+\..+"/> 
    
...