рд╣рд╛рдп,% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо%ред
рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ XML рдбреЗрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рджрд░рдЕрд╕рд▓, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо XML рдбреЗрдЯрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╡реЗ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣
рдЯреАрдбреАрдбреА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдореИрдВ, рдмрджрд▓реЗ рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдЙрдирд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред
рдХрдЯ рдХреЗ рддрд╣рдд, рдореИрдВ рдХреЛрдб рдореЗрдВ XML рдХреА рдкреАрдврд╝реА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред XML рддреБрд▓рдирд╛ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ
XmlUnit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ XML рдбреЗрдЯрд╛ рдХреА рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдкрд╣рд┐рдпрд╛ рдХреЛ рд╕реБрджреГрдврд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЪреБрдирд╛ред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдерд╛ред
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ
рдХрд┐рд╕реА рддрд░рд╣, рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╣рдпреЛрдЧреА рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдЬрдм рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рд╡рд╣рд╛рдБ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рд╛:
@Test public void testSomeXmlGeneration() {
рдпрд╣рд╛рдВ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рд╕реЗ рдореВрд▓ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП,
JUnit4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдХреЛрдб рдХреНрдпреЛрдВ рдЦрд░рд╛рдм рд╣реИ?рдореИрдВ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
1. рджреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реЗ рдЗрд╢рд╛рд░реЗ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдИ рдЖрдВрджреЛрд▓рди рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рдПрдХ рд░реВрдк рдореЗрдВ рдпрд╛ рджреВрд╕рд░реЗ рдХреЛ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╕рдордп рдХреА рдХрдореА рд╕реЗ рдмрд╛рдзрд╛ рд╣реИред
2. рдЙрддреНрдкрдиреНрди XML рдХреЛрдб рдХрд╛ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрди рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЧрдИ рдереА, рдПрдХ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдиреЗ рдЕрдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдерд╛ред рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
3. рдЯреИрдЧ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд░рдо рдХреЗ рдХрд╛рд░рдг рд╕рдорд╛рди XML рд╕рдВрд░рдЪрдирд╛рдПрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
рд╡рд┐рдХрд▓реНрдк 1 | рдЯреИрдЧреНрд╕ рдХреЛ рдкреБрдирдГ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ |
---|
<?xml version="1.0" encoding="UTF-8"?> <project> <name>some project</name> <description>desc</description> </project>
| <?xml version="1.0" encoding="UTF-8"?> <project> <description>desc</description> <name>some project</name> </project>
|
рдпрд╛ рддреЛ:
рд╡рд┐рдХрд▓реНрдк 2 | рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдмрджрд▓реЗрдВ |
---|
<?xml version="1.0" encoding="UTF-8"?> <project name=тАЭsome projectтАЭ description=тАЭdescтАЭ/>
| <?xml version="1.0" encoding="UTF-8"?> <project description=тАЭdescтАЭ name=тАЭsome projectтАЭ/>
|
4. рдореИрдВ XML рд╕реНрд╡рд░реВрдкрдг рдкрд░реАрдХреНрд╖рдг рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, XML рдбреЗрдЯрд╛ рдХреЛ рдмрд┐рдирд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпрд╛ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рдХреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрд░реНрдХ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ:
рд╡рд┐рдХрд▓реНрдк 3 | рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд▓рд╛рдЗрди рд╡рд┐рд░рд╛рдо рд╣рдЯрд╛рдПрдВ |
---|
<?xml version="1.0" encoding="UTF-8"?> <project> <name>some project</name> <description>desc</description> </project>
| <?xml version="1.0" encoding="UTF-8"?> <project><description>desc</description><name>some project</name></project>
|
5. рдбреЗрдЯрд╛ рдХреЗ рдЕрдВрджрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг
рд╡рд┐рдХрд▓реНрдк 3 | рдбреЗрдЯрд╛ рдХреЗ рднреАрддрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рдкреЗрдЯреЗрдВ |
---|
<?xml version="1.0" encoding="UTF-8"?> <project> <name>some project</name> <description>desc</description> </project>
| <?xml version="1.0" encoding="UTF-8"?> <project> <name> some project </name> <description>desc</description> </project>
|
рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдерд╛, рдХреЗрд╡рд▓ рдЯреИрдЧ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдереЛрдбрд╝реЗ рдмрдбрд╝реЗ рдереЗред рдПрдХ рддреНрд░реБрдЯрд┐ рдбрд╛рд▓рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рд╕рд╣реА рдХрд░рдирд╛ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд▓рдВрдмрд╛ рдФрд░ рджрд░реНрджрдирд╛рдХ рд╣реЛред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдореИрдВрдиреЗ рд╕рдордиреНрд╡рдп рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:
- XML рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
- рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЕрднреА рднреА рдХреБрдЫ рдЕрдЪреНрдЫреЗ рд╣реИрдВ)ред
рдПрдХ рдЫреЛрдЯреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореЗрд░реА рдкрд╕рдВрдж
XmlUnit рдкрд░ рдЧрд┐рд░ рдЧрдИред
рдмреЗрд╕рд┐рдХ XmlUnit рдХрдиреЗрдХреНрд╢рди рдХреЗ рддрд░реАрдХреЗ
XmlUnit рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореБрдЦреНрдп рд░реВрдк рд╕реЗ JUnit3 рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред
рдЗрд╕рдХрд╛ рдЖрдзрд╛рд░ XMLTestCase рдХреНрд▓рд╛рд╕ рд╣реИ, рдЬреЛ JUnit3 рд╕реЗ рдЯреЗрд╕реНрдЯрдХреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИред
рдпрд╣рд╛рдВ рдЖрдк рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореБрдЦреНрдп рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, XmlUnit рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдл рдХреНрд▓рд╛рд╕ рд╣реИред
рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред XmlUnit рдХреЛ рдорд╛рд╡реЗрди рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, pom.xml рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдПрдХ рдирдИ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВред
<dependencies> <dependency> <groupId>xmlunit</groupId> <artifactId>xmlunit</artifactId> <version>1.3</version> </dependency> </dependencies>
рдкрд░реАрдХреНрд╖рдг рдЦреЛрд▓реЗрдВ, рд╡рд╣рд╛рдВ рдПрдХ рдирдИ рддреБрд▓рдирд╛ рд▓рд┐рдЦреЗрдВ
@Test public void testSomeXmlGeneration() {
рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ ... рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдпрд╣ рдЯреИрдЧ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдмрд╛рдд рдереАред рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкреНрд░реАрд╕реЗрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
@Before public void setUp() throws Exception { XMLUnit.setIgnoreComments(true); XMLUnit.setIgnoreWhitespace(true); }
рдпрд╣ рд╕рдм рд▓рдЧрддрд╛ рд╣реИ, рдЖрдк рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдордиреЗ XML рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдХреА рд╣реИред рдлрд┐рд░ рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рдЯреИрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣рдореЗрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ:
ShowXmlDiff рд╡рд┐рдзрд┐ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЗрд╕рдореЗрдВ рд╣рдо рдЕрдВрддрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рдФрд░ рдХреНрдпрд╛ рдЕрдЪреНрдЫрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╕рд╛рд╣рд┐рддреНрдп
рдЬрд┐рди рд▓рд┐рдВрдХреНрд╕ рд╕реЗ рдореБрдЭреЗ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реАред
UPD: Lure_of_Chaos рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░реНрдЪрд╛ рдХреЗ
рдмрд╛рдж, рдореИрдВрдиреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдФрд░ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рд╛ред рд╡рд╣рд╛рдВ рдЖрдк XML рд╕рддреНрдпрд╛рдкрди рдФрд░ рдЕрдиреНрдп рд╕реБрдВрджрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, XmlUnit рдЖрдкрдХреЛ
DTD рдФрд░
XSD рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл XML рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ XSD рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ
Lure_of_Chaos рд╕рд╣реА рдврдВрдЧ рд╕реЗ
рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЖрдкрдХреЛ рдЙрди
рдЖрджреЗрд╢реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
рдЬрд┐рдирдореЗрдВ рддрддреНрд╡ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ ред рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
UPD2 :
рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЕрдВрддрд┐рдо
рдЙрджрд╛рд╣рд░рдг рддрдп рдХрд┐рдпрд╛ ред рдзрдиреНрдпрд╡рд╛рдж,
рдХреЛрд▓рд╡рд┐рди ред
рдпрд╣ рд╕рдм, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред