2017-03-23 1 views
0

Je reçois cette erreur en définissant l'entrée Raml for Xml mais je reçois cette erreur, je sais déjà que cette question est répondue pour xsd mais je ne sais pas t ont xsd dans RamlL'attribut 'MaxOccurs' ne peut pas apparaître dans l'élément 'element'. "Dans la définition RAML

quelqu'un peut-il proposer une solution de la façon de définir ensemble dans la conception xml comme je l'ai déjà fait par le dessous Url

https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/#array-type

entrée:

<numbers> 
    <value>3</value> 
    <value>2</value> 
    <value>1</value> 
</numbers> 


#%RAML 1.0 
title: Claim Request 
version: 0.1 
baseUri: http://localhost:8767/claim 
mediaType: [ application/xml ] 
protocols: HTTP 
types: 
    value: 
    type: string 
    numbers: 
    type: value[] 
    uniqueItems: true 
/claimDemo: 
    post: 
    body: 
    type : numbers 
    responses: 
    200: 
    body: 
     application/json: 
     example: | 
       { 
       "message" : "Hello World" 
       } 

Sortie:

Exception stack trace: 
org.mule.module.apikit.exception.BadRequestException: Error validating XML.  Error: s4s-att-not-allowed: Attribute 'maxOccurs' cannot appear in element 'element'. 
at org.mule.module.apikit.HttpRestRequest.validateSchemaV2(HttpRestRequest.java:539) 
at org.mule.module.apikit.HttpRestRequest.validateBody(HttpRestRequest.java:379) 
at org.mule.module.apikit.HttpRestRequest.negotiateInputRepresentation(HttpRestRequest.java:353) 
at org.mule.module.apikit.HttpRestRequest.validate(HttpRestRequest.java:125) 
at org.mule.module.apikit.AbstractRouter.processRouterRequest(AbstractRouter.java:205) 
+0

Eh bien, il y a un fichier XSD quelque part qui n'est pas un schéma valide, et je suppose que votre première tâche est de le trouver. –

Répondre

0

Selon la documentation: https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/#xml-serialization-of-type-instances vous pouvez utiliser l'option wrapped qui vous permettra d'éviter le problème que vous faites face à la définition ici.

Voir l'exemple ci-dessous

#%RAML 1.0 
title: Claim Request 
version: 0.1 
baseUri: http://localhost:8767/claim 
mediaType: [ application/xml ] 
protocols: HTTP 
types: 
    value: string 
    numbers: 
    type: value[] 
    xml: 
     wrapped: true 

/claimDemo: 
    post: 
    body: 
    type: numbers 
    responses: 
    200: 
    body: 
     application/json: 
     example: | 
       { 
       "message" : "Hello World" 
       } 

Comme une note de côté supplémentaire pour démontrer où l'erreur vient dans votre premier exemple, si vous avez supprimé la définition tableau-à-dire: changé:

numbers: 
    type: value[] 
    uniqueItems: true 

à

numbers: 
    type: value 

Ensuite, vous auriez pu utiliser une entrée comme ci-dessous:

<numbers value="a"> 
+0

Salut Matt, L'idée est de s'assurer que la valeur est un tableau de nombre pas une seule valeur – Zahid

+0

La première partie de la réponse montre comment réaliser quelque chose comme ce que vous cherchez avec l'exemple complet. La deuxième partie montre une alternative, qui démontre pourquoi votre échantillon original ne fonctionne pas. –

+0

Merci pour la solution cela fonctionne – Zahid

0

Essayez quelque chose comme ceci:

#%RAML 1.0 
title: Claim Request 
version: 0.1 
baseUri: http://localhost:8767/claim 
mediaType: [ application/xml ] 
protocols: HTTP 
types: 
    value: 
    type: string 
    numbers: 
    type: value[] 
    maxItems: 3 
    uniqueItems: true 
/claimDemo: 
    post: 
    body: 
    type : numbers 
    responses: 
    200: 
    body: 
     application/xml: 
     example: | 
       { 
       "message" : "Hello World" 
       } 
+0

Salut Rafael Je reçois toujours la même erreur Message: Erreur de validation XML. Erreur: s4s-att-not-allowed: L'attribut 'maxOccurs' ne peut pas apparaître dans l'élément 'element'. Charge utile: [email protected] Élément:/arrayApi-main/processeurs/0 @ ramlwitharrays: arrayApi.xml: 10 (APIkit Routeur) --------------- -------------------------------------------------- --------------- Erreur lors de la validation du code XML. Erreur: s4s-att-not-allowed: L'attribut 'maxOccurs' ne peut pas apparaître dans l'élément 'element'. – Zahid