Defect #6345
xml used by rest API is invalid
Status: | Closed | Start date: | 2010-09-09 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | REST API | |||
Target version: | 1.1.0 | |||
Resolution: | Fixed | Affected version: | 1.0.4 |
Description
The xml format used by REST API to insert a bug seem to be invalid. In forum page : http://www.redmine.org/boards/2/topics/17070 an example show the following :
<issue> <project_id>1</project_id> <tracker_id>1</tracker_id> <subject>test2</subject> <description>desc1gsdfgsdg</description> <custom_field_values> <1>test</1> </custom_field_values> </issue>
Except that this XML code is invalid. Indeed:
http://www.w3.org/TR/2008/REC-xml-20081126/#NT-NameStartChar
specify that every node should start by a char within :
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
The result is that you cannot generate xml with DOM API. Currently, I use DOM but with a very bad workaround :
$aElem = $aXmlDoc->createElement("_TOREMOVE_1"); (...) $aXmlOut = str_replace("_TOREMOVE_","",$aXmlDoc->saveXML($aRoot));
Can you try to fix it ?
Associated revisions
History
#1
Updated by Thomas Spycher almost 12 years ago
any update to this?
#2
Updated by Jean-Philippe Lang over 11 years ago
- Status changed from New to Resolved
- Target version set to 1.0.5
- Affected version (unused) set to 1.0.4
- Resolution set to Fixed
- Affected version set to 1.0.4
Fixed in r4481. You can now use the piece of xml that the API returns to update custom fields:
<custom_fields> <custom_field id="1"> <value>Foo</value> </custom_field> ... </custom_fields>
#3
Updated by Bruno Medeiros over 11 years ago
If #6403 needed to be scheduled for 1.1.0, Shouldn't this issue be to 1.1.0 too?
#4
Updated by Jean-Philippe Lang over 11 years ago
- Status changed from Resolved to Closed
- Target version changed from 1.0.5 to 1.1.0
You're right. No feedback, I think it can wait 1.1.
#5
Updated by Florent Fievez over 11 years ago
The Example is bad, good one :
<custom_fields type="array"> <custom_field id="1"> <value>Foo</value> </custom_field> ... </custom_fields>
#6
Updated by Marco Descher almost 8 years ago
I just tried the following input
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <issue> <id>3273</id> <subject>ch.elexis.base.ch.legacy.feature.feature.group</subject> <description/> <start_date>2014-08-20T00:00:00+02:00</start_date> <project_id>0</project_id> <tracker_id>0</tracker_id> <custom_fields type="array"> <custom_field id="2" name="Abostatus"> <value>EXPIRED</value> </custom_field> </custom_fields> <project id="3" name="Praxis Dr. Mustermann"/> <tracker id="4" name="Service"/> </issue>
where the custom field is an enumeration, the value however is not updated to the provided EXPIRED.
This is Redmine 2.4.3.stable
#7
Updated by Toshi MARUYAMA almost 8 years ago
Marco Descher wrote:
I just tried the following input
[...]
where the custom field is an enumeration, the value however is not updated to the provided EXPIRED.
This is Redmine 2.4.3.stable
FTR:
#17760