Sujet : Hoa XYL (Base)

Je ne sais pas si j'ai la dernière version de la doc mais j'ai de gros problème :

Je compile les fichiers xyl que tu as donné dans le manuel (cf : L'interface graphique)
La compilation marche bien mais quand je lance l'index.html j'obtiens l'erreur suivante :

Uncaught exception (Hoa\Xml\Exception): Hoa\Xml\Element\Concrete::__construct: (0) Cannot build the concrete tree because the abstract element
has no ranked concrete element. in C:\wamp\www\Hoa\Framework\Library\Xml\Element\Concrete.php at line 166.

Après avoir vu les fichiers xyl pour la documentation Hoa j'ai essayé de générer le template suivant :

Balises.xyl

<?xml version="1.0" encoding="utf-8"?>

<definition xmlns="http://hoa-project.net/xyl/xylophone">
  <yield name="litc">
    <h1>Life in the cloud</h1>
  </yield>
</definition>

Index.xyl

<?xml version="1.0" encoding="utf-8"?>
<?xyl-use href="Balises.xyl"?>

<document xmlns="http://hoa-project.net/xyl/xylophone">
  <title>Minefield test</title>

  <litc />

</document>

mais après compilation j'obtient le même code erreur :

Uncaught exception (Hoa\Xml\Exception): Hoa\Xml\Element\Concrete::__construct: (0) Cannot build the concrete tree because the abstract element

et aussi (mais en h1)

has no ranked concrete element. in C:\wamp\www\Hoa\Framework\Library\Xml\Element\Concrete.php at line 166.
" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

Re : Hoa XYL (Base)

D'après ta réponse : http://hoa-project.net/Forum/post/3067/#p3067

J'ai modifié mes xyl :

Index.xyl

<?xml version="1.0" encoding="utf-8"?>
<?xyl-use href="Balises.xyl"?>

<document xmlns="http://hoa-project.net/xyl/xylophone">
    
    <section1>
        <title><litc /></title>
    </section1>

</document>

Balises.xyl

<?xml version="1.0" encoding="utf-8"?>

<definition xmlns="http://hoa-project.net/xyl/xylophone">
    <yield name="litc">
        Life in the cloud
    </yield>
</definition>

Cela ne m'affiche pas Life in the cloud
par contre j'ai remplacé <litc /> par un texte en dur et ça marche :S :S

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

Re : Hoa XYL (Base)

Arf si je fais :

Balises.xyl

<?xml version="1.0" encoding="utf-8"?>

<definition xmlns="http://hoa-project.net/xyl/xylophone">
    <yield name="litc">
        <em>Life in the cloud</em>
    </yield>
</definition>

Ça marche mais le texte en italique (normal <em> ..) :S alors que moi je veux du texte basic :S

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

Re : Hoa XYL (Base)

Alors j'ai regarder les Interpreter/Html

Ou peut t-on voir les correspondance html permettant de traduire les Interpreter ?

et j'ai trouvé Interpreter/Html/Text.php
ça m'a parut logique de l'utiliser pour mon problème.
Donc j'ai essayé :

<text>Life in the cloud</text>

Et j'obtient l'erreur suivante :

Uncaught exception (Hoa\Xml\Exception): Hoa\Xml\Element\Concrete::__construct: (0) Cannot build the concrete tree because the abstract element has no ranked concrete element. in C:\wamp\www\Hoa\Framework\Library\Xml\Element\Concrete.php at line 166.

J'ai essayé aussi <text value="life in the cloud" /> mais pareil.


J'ai essayé les balises small, em, p ça marche nickel mais je ne veux pas de mise en forme :S

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

Re : Hoa XYL (Base)

En même temps je cherche à mettre un text en dur alors que le yield sert à mettre des parties de DOM ... mais bon niveau liberté : 0

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

6

Re : Hoa XYL (Base)

Et oh, on se calme, j'ai la réponse depuis le début hein wink.

C'est facile à comprendre (je pense). XML par défaut n'adopte pas un modèle dit phrasing content, c'est à dire que :

<foo>bar</foo>

est valide, mais pas :

<foo>bar <baz>qux</baz> bar</foo>

C'est en deça que diffère XML d'HTML par exemple. Par défaut, les composants XYL n'adoptent pas ce modèle. En revanche, s'ils implémentent l'interface \Hoa\Xml\Element\Model\Phrasing, alors tout fonctionnera comme il faut automatiquement. C'est pourquoi le composant text existe, car

<foo>bar <baz>qux</baz> bar</foo>

est transformé en

<foo><__text>bar </__text><baz>qux</baz><__text> bar</__text></foo>

(c'est le comportement par défaut).

Ensuite, pour le composant <yield>, c'est différent. Il est censé créé des composants, donc on est censé écrire un composant à l'intérieur. Oui, c'est quand même plutôt logique wink.

Pour répondre à ton problème au final, tu as deux solutions. La première avec __text, mais ce composant ne devrait pas être utilisé directement, c'est donc la solution à éviter (même si ça marcherait très bien). La seconde solution serait d'utiliser le composant value de cette façon :

<yield name="litc">
  <value>Life in the Cloud</value>
</yield>

C'est la solution la plus propre et la plus intelligente de faire ce que tu veux smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Hoa XYL (Base)

Merci pour ta réponse je comprend mieux.
Désolé pour les posts tongue

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

Re : Hoa XYL (Base)

Peux tu m'indiquer où ranger mes fichiers XYL ? (pour faire propre tongue)

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant

9

Re : Hoa XYL (Base)

Bah où tu veux en fait smile.
Tu as hoa://Application/View/ par défaut qui te permet d'accéder à ton dossier de vue (qui peut être n'importe quoi et n'importe où, je le rappelle, ce sont des liens symboliques). Donc après tu peux faire des dossiers, genre hoa://Application/View/Foobar/ etc. Tu te débrouilles quoi smile. Non ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Hoa XYL (Base)

un dossier Application/XYL c'est bizard par contre Application/Template c'est mieux mais au final c'est de la vue donc View/Template me parait correct.

ou plutôt dans View/HendTheme/Template (comme je veux tongue)

" L'imagination est plus importante que la connaissance. La connaissance est limitée alors que l'imagination englobe le monde entier, stimule le progrès, suscite l'évolution. " - Life in the cloud :: Getting Started with Hoa - Hoa débutant