L'élément ne peut pas avoir de caractère [les enfants], parce que le type de type de contenu est l'élément seulement
J'ai essayé de valider mon fichier XML avec un fichier XSD, mais je reçois le message d'erreur suivant:
[Erreur]: cvc-complexe-type.2.3: Élément "paragraphe" ne peut pas avoir
caractère [les enfants], parce que le type de type de contenu est l'élément seulement
Qui (si je suis le comprendre correctement) désigne un type complexe ne peut avoir une combinaison de simple et complexe tapé éléments, comme des enfants.
Mais comment puis-je résoudre ce problème? Je suis encore un peu nouveau à cela, la solution pourrait être aussi simple?
Mon code est indiqué ci-dessous:
XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="biography">
<xs:complexType>
<xs:sequence>
<xs:element name="paragraph" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name">
<xs:complexType>
<xs:sequence>
<xs:element name="first_name" type="xs:string" minOccurs="0"></xs:element>
<xs:element name="last_name" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="emphasize" maxOccurs="unbounded" minOccurs="0" type="xs:string"></xs:element>
<xs:element name="profession" maxOccurs="unbounded" minOccurs="0" type="xs:string"></xs:element>
<xs:element name="date" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="month" type="xs:string"></xs:element>
<xs:element name="day" type="xs:int"></xs:element>
<xs:element name="year" type="xs:int"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="definition" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="term" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML:
<biography>
<paragraph>
<name><first_name>Alex</first_name> <last_name>Turing</last_name></name>
was one of the first people to truly deserve the name <emphasize>computer
scientist</emphasize>. Although his contributions to the fields are too
numerous to lst, his best-known are the famous <emphasize>Turing
Test</emphasize> and <emphasize>Turing Machine</emphasize>.
</paragraph>
<definition>The <term>Turing Test</term> is to this day the standard test
for determining whether a computer is truly intelligent. This test yet
has to be passed.</definition>
<definition>A <term>Turing Machine</term> is an abstract finite state
automaton with infinite memory that can be proven equivalent to any other
finite state automaton with arbitrarily large memory. Thus what is true
for one Turing machine is true for all Turing machines no matter how
implemented.</definition>
<paragraph>
<name><last_name>Turing</last_name></name> was also an accomplished
<profession>mathematician</profession> and
<profession>cryptographer</profession>. His assistance was crucial in
helping the Allies decode the German Enigma cipher. He committed suicide
on <date><month>June</month> <day>7</day>, <year>1954</year></date>
after being convicted of homosexuality and forced to take female hormone
injections.
</paragraph>
</biography>
Désolé, c'est totalement étranger à l'essence de la question, mais je ne peux m'empêcher de remarquer: c'est Alan Turing (en fait, Alan Mathison Turing), pas Alex.
OriginalL'auteur Toshan | 2015-12-28
Vous devez vous connecter pour publier un commentaire.
C'est précisément l'objet de la mixte contenu:
Et:
Note que vous aussi vous voulez probablement
paragraph
etdefinition
d'être dans unxs:choice macOccurs="unbounded"
donné votre XML.Voici votre XSD mis à jour avec tous les changements nécessaires pour que votre document XML valide:
Droit,
mixed="true"
vous permet de mixer balise et texte le modèle de contenu.OriginalL'auteur kjhughes
Pour moi Cette erreur se produit en raison de l'étrange personnage dans le xml
Quand j'ai comparé les deux fichiers avec des données similaires à "BeyondCompare" outil
J'ai trouvé personnage inconnu, qui n'est pas visible.
Ouvrir le fichier défectueux dans "le Code de Visual Studio" il m'a montré quelques caractères spéciaux.
Quand je copie collé à la chaîne dans des outils en ligne pour rechercher des caractères spéciaux,
J'ai trouvé que c'est un caractère spécial ().
En raison de ce caractère, j'ai l'erreur ci-dessus. Il a fallu deux semaines pour trouver une solution.
OriginalL'auteur Varun M