рдЬреИрдХреНрд╕рдм (рдПрдХреНрд╕рдЬреЗрд╕реА) рдПрдХреНрд╕рдПрдордПрд▓ рд╕реНрдХреАрдорд╛ (рдПрдХреНрд╕рдПрд╕рдбреА) рд╕реЗ рд╡рд░реНрдЧ рдФрд░ рдХреНрд╖реЗрддреНрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред XJC рдкреНрд▓рдЧрдЗрди

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ Web- рдЖрдП рдереЗ, рдиреЗ XML Schema ( XSD ) рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд Java DTO рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдкреАрдврд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред xjc рдЗрд╕реЗ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде xjc рдХрд░рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ wsimport рдХрд░реЗрдВ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди, xjc рдпрд╛ xjc рд╕реЗ xjc рдпрд╛ wsimport рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред


рдПрдХ XSD рд╕реНрдХреАрдорд╛ рд╕реЗ рдХрдХреНрд╖рд╛рдПрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЗрддрдирд╛ рддреНрд╡рд░рд┐рдд рдФрд░ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдореВрд▓ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╡рд┐рд╡рд░рдг рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ!


рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ , рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣реА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, рдЬрд╣рд╛рдВ (рдЖрдк рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдмрд┐рдирд╛ рд╡рд┐рд╡рд░рдг рдХреЗ XML рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реАрд▓реНрдб (рдлрд╝реАрд▓реНрдб) рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреВрд░реА рддрд░рд╣ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдк, рдореЗрд░реА рддрд░рд╣, рдЙрдиреНрд╣реЗрдВ рднреА рд░рдирдЯрд╛рдЗрдо ( runtime ) рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рд╡рд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ рдкрд░реЗрд╢рд╛рдиреА рд╣реИ ред


рдЕрдЬреАрдм рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореИрдВрдиреЗ рдПрдХ рдкреНрд▓рдЧ-рдЗрди рд▓рд┐рдЦрд╛, рдЬрд┐рд╕реЗ рдореИрдВ рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреБрдЫ рдШрдВрдЯреЗ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред


рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдЬреИрдХреНрд╕рдм рдлреАрдЪрд░реНрд╕


рдЬреИрдХреНрд╕рдм рдХрд╛ рдПрдХ рд▓рдВрдмрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рд╡рд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ ред


рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдХреНрд▓рд╛рд╕ рдЬрдирд░реЗрд╢рди рдХреЛ рдЗрдирд╡реЙрдЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдЯреВрд▓ - xjc рдореЗрдВ рднреА рдХрдо рд╕реЗ рдХрдо рдХреАрдЬрд╝ рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рднреА рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред


рдмреЗрд╢рдХ, рдЖрдк рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рдЙрд▓реНрд▓реЗрдЦ- -b , рдЬрд╣рд╛рдВ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдВрдзрди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣рдерд┐рдпрд╛рд░ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдИ рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВред рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ) - рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдПрдиреНрдереЛрдЯреЗрд╢рди рдпрд╛ рджрд┐рдП рдЧрдП рдирд╛рдореЛрдВ рдХреЗ рд╕реНрдерд┐рд░ рдореВрд▓реНрдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЙрди рддрддреНрд╡реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред


рдЬреИрдХреНрд╕рдм (XJC) рдкреНрд▓рдЧрдЗрдиреНрд╕


рдЬрдм рдореИрдВ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдореБрдЭреЗ рдХрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдорд┐рд▓реЗ рдЬреЛ рдкреАрдврд╝реА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреА рд╕рдореАрдХреНрд╖рд╛ рдЗрд╕ рдкрдж рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред рдХреНрдпрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред


рд▓реЗрдХрд┐рди рдлрд┐рд░, http://stackoverflow.com/ рдкрд░ рдЙрддреНрддрд░ рдФрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдкреНрд░рд╢реНрди рдорд┐рд▓реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


  1. рд╕реНрдХреАрдорд╛ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП JAXB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ ред
  2. рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ XML рд╕реНрдХреАрдорд╛ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЬрд╛рд╡рджреЛрдХ
  3. рдореИрдВ рдПрдХ рд╡рд░реНрдЧ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдиреЛрдб рдХреЗ XML рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдФрд░ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдПрдХ рднреА рдкреВрд░реНрдг рдЙрддреНрддрд░ рдирд╣реАрдВ!


рд▓реЗрдХрд┐рди, рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ API ! рдирд┐рдореНрди-рд╕реНрддрд░, рдХрднреА-рдХрднреА рднреНрд░рд╛рдордХ, рд▓рдЧрднрдЧ рдмрд┐рдирд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ ... рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЙрдиреНрдирдд рд╣реИ, рдпрд╛рдиреА рдЖрдк рд╕реАрдзреЗ рдХреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдмрд╣реБрдд рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдХрдИ рдЧреИрд░-рдорд╛рдирдХ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЙрддреНрддрд░ рдЕрдХреНрд╕рд░ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЦреИрд░, рдореИрдВрдиреЗ рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред


рдЬреЛ рд▓реЛрдЧ рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВ рд▓реЗрдЦреЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:



рдореИрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХреНрдпреЛрдВ


рд╣рдорд╛рд░реА рдПрдХ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдПрдХреНрд╕рдПрд╕рдбреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рдореЗрдВ рдПрдордбреАрдПрдо рдпреВрдирд┐рдбрд╛рдЯрд╛ рдореЗрдВ рдПрдХ рдореЙрдбрд▓ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдореЛрдВ рдХреЛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ MDM рдкреНрд░рдгрд╛рд▓реА рд╕реНрд╡рдпрдВ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╣реИ, рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ XSD рд╡рд┐рд╡рд░рдг рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░рд┐рдпрд╛рдВ рдмрдирд╛рдиреА рдереАрдВред рдЙрд╕реА рд╕рдордп, рд░рдЬрд┐рд╕реНрдЯреНрд░рд┐рдпреЛрдВ рдореЗрдВ рдлрд╝реАрд▓реНрдб рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдлрд╝реАрд▓реНрдб рдирд╛рдо) рдФрд░ "рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо" рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдПрдХ рдРрд╕рд╛ рдирд╛рдо рдЬреЛ рд░реВрд╕реА рдореЗрдВ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЖрд░рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╕рд╛рджреГрд╢реНрдп рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдпрд╣ рд╢рд╛рдпрдж рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИ) рдЬрд┐рд╕рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдмрд╛рдж рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд░рдг ( comment ) рджреЗрдВред

рдореЗрд░реА рдпреЛрдЬрдирд╛ рдпрд╣ рдереА:


  1. XJC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XSD рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдирд╛
  2. рддрдм рд╣рдо рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╕реЗ рдиреАрдЪреЗ рдЦреЗрддреЛрдВ рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рд▓реИрдЯрд┐рди рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдЬрд┐рдиреНрд╣реЗрдВ field рдХрдХреНрд╖рд╛рдУрдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд░реВрд╕реА, рдорд╛рдирд╡-рдкрдардиреАрдп рд╡рд┐рд╡рд░рдг рдХрд╣реАрдВ рдирд╣реАрдВ рдерд╛!


рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрди рд╡рд┐рд╡рд░рдг рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдЬрд╛рд░реЛрдВ рдиреЗрд╕реНрдЯреЗрдб рдлрд╝реАрд▓реНрдб рд╣реИрдВред


рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ Groovy рдкрд░ рдПрдХ рд╕рдорд╛рди рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдерд╛, рдЬреЛ рдПрдХреНрд╕рдПрд╕рдбреА рд╕реЗ рд╡рд┐рд╡рд░рдг рдлрд╛рдбрд╝ рд░рд╣рд╛ рдерд╛ред рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓, restriction / extension рдХреЗ рд░реВрдк рдореЗрдВ XSD 1.1 рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╕рдорд░реНрдерди (рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдФрд░ рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде), рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреНрд▓рд╛рд╕ рдлрд╝реАрд▓реНрдб рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ <element> рдФрд░ <attribute> , <sequence> , <choose> рдФрд░ рдХрдИ рдЕрдиреНрдп рдЫреЛрдЯреА рдЪреАрдЬреЗрдВред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЙрд╕рдиреЗ рд╕рджреНрднрд╛рд╡ рдирд╣реАрдВ рдмрдврд╝рд╛рдпрд╛ред


рдирддреАрдЬрддрди, рдореИрдВ xjc-рдкреНрд░рд▓реЗрдЦрди-рдПрдиреЛрдЯреЗрд╢рди-рдкреНрд▓рдЧрдЗрди рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рд▓реМрдЯ рдЖрдпрд╛, рдЬреЛ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛!


xjc-рдкреНрд░рд▓реЗрдЦрди-рдПрдиреЛрдЯреЗрд╢рди-рдкреНрд▓рдЧрдЗрди


рд╕рдм рдХреБрдЫ рдЧрд┐рддреБрдм рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/Hubbitus/xjc-documentation-annotation-plugin
рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рди, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдПрдХ рдЕрд▓рдЧ - gradle ред


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБ рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдмрд╕ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ XSD рдЯреБрдХрдбрд╝рд╛ рд╣реИ:


  <xs:complexType name="Customer"> <xs:annotation> <xs:documentation></xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" type="xs:string"> <xs:annotation> <xs:documentation>  </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, XJC рдЗрд╕рд╕реЗ рдПрдХ XJC рдХреНрд▓рд╛рд╕ рдЙрддреНрдкрдиреНрди XJC (рд░реАрдбрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЧреЗрдЯрд░реНрд╕, рд╕реЗрдЯрд░рд░реНрд╕ рдФрд░ рдХреБрдЫ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ):


 /** *  * * <p>Java class for Customer complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * &lt;complexType name="Customer"&gt; * &lt;complexContent&gt; * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt; * &lt;sequence&gt; * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt; * &lt;element name="age" type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/&gt; * &lt;/sequence&gt; * &lt;/restriction&gt; * &lt;/complexContent&gt; * &lt;/complexType&gt; * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Customer", propOrder = { "name", "age" }) public class Customer { @XmlElement(required = true) protected String name; @XmlElement(required = true) @XmlSchemaType(name = "positiveInteger") protected BigInteger age; } 

рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ ( Javadoc рд╡рд╣реА рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ):


 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Customer", propOrder = { "name", "age" }) @XsdInfo(name = "", xsdElementPart = "<complexType name=\"Customer\">\n <complexContent>\n <restriction base=\"{http://www.w3.org/2001/XMLSchema}anyType\">\n <sequence>\n <element name=\"name\" type=\"{http://www.w3.org/2001/XMLSchema}string\"/>\n <element name=\"age\" type=\"{http://www.w3.org/2001/XMLSchema}positiveInteger\"/>\n </sequence>\n </restriction>\n </complexContent>\n</complexType>") public class Customer { @XmlElement(required = true) @XsdInfo(name = "  ") protected String name; @XmlElement(required = true) @XmlSchemaType(name = "positiveInteger") @XsdInfo(name = "") protected BigInteger age; } 

рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ @XmlType рдПрдиреЛрдЯреЗрд╢рди рджреЗрдЦреЗрдВред


рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓ рд╣реИ:


  XsdInfo xsdAnnotation = CadastralBlock.class.getDeclaredAnnotation(XsdInfo.class); System.out.println("XSD description: " + xsdAnnotation.name()); 

рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣реИ: 1 , 2 ред

Source: https://habr.com/ru/post/hi437914/


All Articles