i've written the following XML Schema to validate my custom XML:
Expand|Select|Wrap|Line Numbers
- <?xml version="1.0" encoding="utf-8"?>
- <xs:schema id="item" targetNamespace="http://www.tenforce.com/rest/item"
- xmlns="http://www.tenforce.com/schema/item.xsd"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:ts="http://www.tenforce.com/rest/timestamp"
- xmlns:st="http://www.tenforce.com/rest/schedulingtype"
- xmlns:trl="http://www.tenforce.com/rest/timeregistrationlevel">
- <xs:import namespace="http://www.tenforce.com/rest/schedulingtype" schemaLocation="schedulingtype.xsd" />
- <xs:import namespace="http://www.tenforce.com/rest/timeregistrationlevel" schemaLocation="timeregistrationlevel.xsd" />
- <xs:import namespace="http://www.tenforce.com/rest/timestamp" schemaLocation="timestamp.xsd" />
- <xs:element name="item">
- <xs:complexType>
- <xs:all minOccurs="1" maxOccurs="1">
- <xs:element name="access_key" type="xs:string" nillable="true" />
- <xs:element name="account_code" type="xs:anyURI" nillable="true" />
- <xs:element name="activity" type="xs:anyURI" nillable="true" />
- <xs:element name="actual_budget" type="xs:decimal" />
- <xs:element name="actual_due_date" type="xs:dateTime" />
- <xs:element name="actual_due_time" type="xs:dateTime" />
- <xs:element name="actual_start_date" type="xs:dateTime" />
- <xs:element name="actual_start_time" type="xs:dateTime" />
- <xs:element name="allow_actual_effort_edit" type="xs:boolean" />
- <xs:element name="allow_edit_mode" type="xs:boolean" />
- <xs:element name="allow_timeregistration" type="xs:boolean" />
- <xs:element name="application" type="xs:anyURI" />
- <xs:element name="approval_status" type="xs:anyURI" />
- <xs:element name="billtype" type="xs:anyURI" />
- <xs:element name="child_sequence" type="xs:integer" />
- <xs:element name="closed_date" type="xs:dateTime" />
- <xs:element name="costs_invoiced" type="xs:boolean" />
- <xs:element name="description" type="xs:string" />
- <xs:element name="due_date" type="xs:string" />
- <xs:element name="duration_actual" type="xs:decimal" />
- <xs:element name="duration_estimate_to_complete" type="xs:decimal" />
- <xs:element name="duration_on_calendar" type="xs:decimal" />
- <xs:element name="duration_planned" type="xs:decimal" />
- <xs:element name="earliest_finish_date" type="xs:dateTime" />
- <xs:element name="earliest_start_date" type="xs:dateTime" />
- <xs:element name="editor" type="xs:anyURI" />
- <xs:element name="edited" type="xs:dateTime" />
- <xs:element name="external_reference" type="xs:boolean" />
- <xs:element name="has_multiple_owners" type="xs:boolean" />
- <xs:element name="fixed_due_date" type="xs:boolean" />
- <xs:element name="impact" type="xs:anyURI" />
- <xs:element name="internal_comment" type="xs:string" />
- <xs:element name="item_status" type="xs:anyURI" />
- <xs:element name="latest_finish_date" type="xs:dateTime" />
- <xs:element name="latest_start_date" type="xs:dateTime" />
- <xs:element name="list" type="xs:anyURI" />
- <xs:element name="list_counter" type="xs:integer" />
- <xs:element name="milestone" type="xs:boolean" />
- <xs:element name="mitigation_impact" type="xs:anyURI" />
- <xs:element name="mitigation_probability" type="xs:anyURI" />
- <xs:element name="mitigation_risk_accepted" type="xs:boolean" />
- <xs:element name="number_of_attachements" type="xs:integer" />
- <xs:element name="number_of_children" type="xs:integer" />
- <xs:element name="number_of_comments" type="xs:integer" />
- <xs:element name="number_of_parents" type="xs:integer" />
- <xs:element name="ongoing_since_date" type="xs:dateTime" />
- <xs:element name="origin_application_version" type="xs:anyURI" />
- <xs:element name="originator" type="xs:anyURI" />
- <xs:element name="owner" type="xs:anyURI" />
- <xs:element name="part_of_critical_path" type="xs:boolean" />
- <xs:element name="percent_complete" type="xs:integer" />
- <xs:element name="planned_budget" type="xs:decimal" />
- <xs:element name="planned_due_date" type="xs:dateTime" />
- <xs:element name="planned_end_time" type="xs:dateTime" />
- <xs:element name="planned_start_date" type="xs:dateTime" />
- <xs:element name="planned_start_time" type="xs:dateTime" />
- <xs:element name="priority" type="xs:anyURI" />
- <xs:element name="probability" type="xs:anyURI" />
- <xs:element name="risk_accepted" type="xs:boolean" />
- <xs:element name="scheduling_problem" type="xs:boolean" />
- <xs:element name="scheduling_type" type="st:SchedulingType" />
- <xs:element name="slack" type="xs:decimal" />
- <xs:element name="solution" type="xs:string" />
- <xs:element name="solution_application_version" type="xs:anyURI" />
- <xs:element name="source_date" type="xs:dateTime" />
- <xs:element name="source_event" type="xs:string" />
- <xs:element name="source_organization_unit" type="xs:anyURI" />
- <xs:element name="target_organization_unit" type="xs:anyURI" />
- <xs:element name="task_type" type="xs:string" />
- <xs:element name="template" type="xs:boolean" />
- <xs:element name="template_due_in" type="xs:string" />
- <xs:element name="template_item" type="xs:anyURI" />
- <xs:element name="time_registration_level" type="trl:TimeRegistrationLevel" />
- <xs:element name="timestamp" type="ts:TimeStamp" />
- <xs:element name="title" type="xs:string" />
- <xs:element name="validated" type="xs:boolean" />
- </xs:all>
- </xs:complexType>
- </xs:element>
- </xs:schema>
Expand|Select|Wrap|Line Numbers
- <?xml version="1.0" encoding="UTF-8" ?>
- <item xmlns="http://www.tenforce.com/rest/item" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://localhost/arne/rest/schema/item.xsd">
- <access_key></access_key>
- <account_code>http://localhost/arne/rest/accountcode/</account_code>
- <activity>http://localhost/arne/rest/activity/</activity>
- <actual_budget></actual_budget>
- <actual_due_date></actual_due_date>
- <actual_due_time></actual_due_time>
- <actual_start_date></actual_start_date>
- <actual_start_time></actual_start_time>
- <allow_actual_effort_edit>False</allow_actual_effort_edit>
- <allow_edit_mode>True</allow_edit_mode>
- <allow_timeregistration>False</allow_timeregistration>
- <application>http://localhost/arne/rest/application/</application>
- <approval_status>http://localhost/arne/rest/approvalstatus/</approval_status>
- <billtype>http://localhost/arne/rest/billtype/</billtype>
- <child_sequence></child_sequence>
- <closed_date></closed_date>
- <costs_invoiced>False</costs_invoiced>
- <description></description>
- <due_date></due_date>
- <duration_actual>0.00</duration_actual>
- <duration_estimate_to_complete>0.00</duration_estimate_to_complete>
- <duration_on_calendar>0.00</duration_on_calendar>
- <duration_planned>0.00</duration_planned>
- <earliest_finish_date></earliest_finish_date>
- <earliest_start_date></earliest_start_date>
- <editor>http://localhost/arne/rest/user/</editor>
- <edited></edited>
- <external_reference></external_reference>
- <has_multiple_owners>False</has_multiple_owners>
- <fixed_due_date>False</fixed_due_date>
- <impact>http://localhost/arne/rest/impact/</impact>
- <internal_comment></internal_comment>
- <item_status>http://localhost/arne/rest/itemstatus/15</item_status>
- <latest_finish_date></latest_finish_date>
- <latest_start_date></latest_start_date>
- <list>http://localhost/arne/rest/list/18</list>
- <list_counter>1</list_counter>
- <milestone>False</milestone>
- <mitigation_impact>http://localhost/arne/rest/mitigationimpact/</mitigation_impact>
- <mitigation_probability>http://localhost/arne/rest/mitigationprobability/</mitigation_probability>
- <mitigation_risk_accepted>False</mitigation_risk_accepted>
- <number_of_attachements>0</number_of_attachements>
- <number_of_children>0</number_of_children>
- <number_of_comments>0</number_of_comments>
- <number_of_parents>0</number_of_parents>
- <ongoing_since_date>25/06/2010 09:29:35</ongoing_since_date>
- <origin_application_version>http://localhost/arne/rest/applicationversion/</origin_application_version>
- <originator>http://localhost/arne/rest/user/1</originator>
- <owner>http://localhost/arne/rest/user/3</owner>
- <part_of_critical_path>False</part_of_critical_path>
- <percent_complete></percent_complete>
- <planned_budget></planned_budget>
- <planned_due_date></planned_due_date>
- <planned_end_time></planned_end_time>
- <planned_start_date></planned_start_date>
- <planned_start_time></planned_start_time>
- <priority>http://localhost/arne/rest/priority/6</priority>
- <probability>http://localhost/arne/rest/probability/</probability>
- <risk_accepted>False</risk_accepted>
- <scheduling_problem>True</scheduling_problem>
- <scheduling_type>NotDefined</scheduling_type>
- <slack></slack>
- <solution></solution>
- <solution_application_version>http://localhost/arne/rest/applicationversion/</solution_application_version>
- <source_date></source_date>
- <source_event></source_event>
- <source_organization_unit>http://localhost/arne/rest/organizationunit/</source_organization_unit>
- <target_organization_unit>http://localhost/arne/rest/organizationunit/</target_organization_unit>
- <task_type></task_type>
- <template>False</template>
- <template_due_in></template_due_in>
- <template_item>http://localhost/arne/rest/item/</template_item>
- <time_registration_level>0</time_registration_level>
- <timestamp created="25/06/2010 09:29:35" modified="25/06/2010 09:29:39">
- <creator>http://localhost/arne/rest/user/1</creator>
- <modifier>http://localhost/arne/rest/user/1</modifier>
- </timestamp>
- <title>check parentfields</title>
- <validated>False</validated>
- </item>