mois dtd && DTO 추가

dev
Jonguk. Lim 7 months ago
parent fbc2cf42d8
commit 3728923fde

@ -0,0 +1,248 @@
package cokr.xit.adds.inf.mois.model;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlValue;
import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
/**
* <pre>
* description :
* packageName : cokr.xit.adds.inf.mois.model
* fileName : ExchangepackDto
* author : limju
* date : 2024-05-02
* ======================================================================
*
* ----------------------------------------------------------------------
* 2024-05-02 limju
*
* </pre>
*/
@JacksonXmlRootElement(localName = "exchangepack") //, namespace = "https://www.nims.or.kr/schema/nims")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ExchangepackDto {
@XmlElement(required = true)
protected Header header;
protected Contents contents;
@XmlAttribute(name = "filename", required = true)
protected String filename;
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Header {
@XmlElement(required = true)
protected Server server;
@XmlElement(required = true)
protected Sender sender;
@XmlElement(required = true)
protected Receiver receiver;
@XmlElement(required = true)
protected String sendersystemname;
@XmlElement(required = true)
protected Exchangetype exchangetype;
@XmlElement(required = true)
protected String doctype;
@XmlElement(required = true)
protected String date;
@XmlElement(required = true)
protected String administrativenum;
@XmlElement(required = true)
protected String title;
protected Addenda addenda;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Server {
@XmlElement(required = true)
protected String sendserverid;
@XmlElement(required = true)
protected String receiveserverid;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Sender {
@XmlElement(required = true)
protected Organ organ;
@XmlElement(required = true)
protected String sendkey;
protected String username;
protected String userposition;
protected String email;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Organ {
@XmlElement(required = true)
protected Orgname orgname;
@XmlElement(required = true)
protected Deptname deptname;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Orgname {
@XmlValue
protected String value;
@XmlAttribute(name = "orgcode", required = true)
protected String orgcode;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Deptname {
@XmlValue
protected String value;
@XmlAttribute(name = "deptcode", required = true)
protected String deptcode;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Receiver {
@XmlElement(required = true)
protected Organ organ;
@XmlElement(required = true)
protected String recvkey;
protected String username;
protected String userposition;
protected String email;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Exchangetype {
@XmlElement(required = true)
protected String maintype;
protected String subtype;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Addenda {
protected List<Addendum> addendum;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Addendum {
@XmlValue
protected String value;
@XmlAttribute(name = "Name", required = true)
protected String name;
@XmlAttribute(name = "comment", required = true)
protected String comment;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Contents {
protected List<Content> content;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Content {
@XmlValue
protected String value;
@XmlAttribute(name = "content-role", required = true)
protected String contentRole;
@XmlAttribute(name = "sub-role")
@Builder.Default
protected String subRole = "content";
@XmlAttribute(name = "content-transfer-encoding")
@Builder.Default
protected String contentTransferEncoding = "base64";
@XmlAttribute(name = "filename", required = true)
protected String filename;
@XmlAttribute(name = "content-type")
protected String contentType;
@XmlAttribute(name = "charset")
protected String charset;
@XmlAttribute(name = "attachorder")
protected String attachorder;
/**
* <pre>
* default = non
* modifiable | modified | non
* </pre>
*/
@XmlAttribute(name = "modify")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@Builder.Default
protected String modify = "non";
}
}

@ -0,0 +1,137 @@
package cokr.xit.adds.inf.mois.model;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlValue;
import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
/**
* <pre>
* description :
* packageName : cokr.xit.adds.inf.mois.model
* fileName : PackDto
* author : limju
* date : 2024-05-02
* ======================================================================
*
* ----------------------------------------------------------------------
* 2024-05-02 limju
*
* </pre>
*/
@JacksonXmlRootElement(localName = "pack")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class PackDto {
@XmlElement(required = true)
protected Header header;
@XmlElement(required = true)
protected Contents contents;
@XmlAttribute(name = "filename", required = true)
protected String filename;
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Header {
@XmlElement(required = true)
protected Type type;
@XmlElement(required = true)
protected String date;
@XmlElement(required = true)
protected String sender;
@XmlElement(required = true)
protected String receiver;
@XmlElement(name = "sender_userid", required = true)
protected String senderUserid;
@XmlElement(name = "receiver_userid", required = true)
protected String receiverUserid;
@XmlElement(name = "sender_email")
protected String senderEmail;
@XmlElement(name = "sender_orgname", required = true)
protected String senderOrgname;
@XmlElement(name = "sender_systemname", required = true)
protected String senderSystemname;
@XmlElement(name = "administrative_num", required = true)
protected String administrativeNum;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Type {
/**
* <pre>
* docType
* send|fail|arrive|receive|invalid|submit|return|approval
*</pre>
*/
@XmlAttribute(name = "doc-type", required = true)
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
protected String docType;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Contents {
protected List<Content> content;
public List<Content> getContent() {
if (content == null) {
content = new ArrayList<Content>();
}
return this.content;
}
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class Content {
@XmlValue
protected String value;
@XmlAttribute(name = "content-role", required = true)
protected String contentRole;
@XmlAttribute(name = "content-transfer-encoding")
protected String contentTransferEncoding = "base64";
@XmlAttribute(name = "filename", required = true)
protected String filename;
@XmlAttribute(name = "content-type")
protected String contentType;
@XmlAttribute(name = "charset")
protected String charset;
}
}

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="EUC-KR"?>
<!--
filename: exchangepack.dtd
Typical usage:
<?XML version="1.0" encoding="euc-kr" ?>
<!DOCTYPE exchangepack SYSTEM "exchangepack.dtd">
<pack> ... </pack>
-->
<!ELEMENT exchangepack (header, contents?)>
<!ATTLIST exchangepack
filename CDATA #REQUIRED
>
<!ELEMENT header (server, sender, receiver, sendersystemname, exchangetype, doctype, date, administrativenum, title, addenda?)>
<!ELEMENT server (sendserverid, receiveserverid)>
<!ELEMENT sendserverid (#PCDATA)>
<!ELEMENT receiveserverid (#PCDATA)>
<!ELEMENT sender (organ, sendkey, username?, userposition?, email?)>
<!ELEMENT receiver (organ, recvkey, username?, userposition?, email?)>
<!ELEMENT organ (orgname, deptname)>
<!ELEMENT orgname (#PCDATA)>
<!ATTLIST orgname
orgcode CDATA #REQUIRED>
<!ELEMENT deptname (#PCDATA)>
<!ATTLIST deptname
deptcode CDATA #REQUIRED
>
<!ELEMENT sendkey (#PCDATA)>
<!ELEMENT recvkey (#PCDATA)>
<!ELEMENT username (#PCDATA)>
<!ELEMENT userposition (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT sendersystemname (#PCDATA)>
<!ELEMENT exchangetype (maintype, subtype?)>
<!ELEMENT maintype (#PCDATA)>
<!ELEMENT subtype (#PCDATA)>
<!ELEMENT doctype (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT administrativenum (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT addenda (addendum*)>
<!ELEMENT addendum (#PCDATA)>
<!ATTLIST addendum
Name CDATA #REQUIRED
comment CDATA #REQUIRED>
<!ELEMENT contents (content)*>
<!ELEMENT content (#PCDATA)>
<!ATTLIST content
content-role CDATA #REQUIRED
sub-role CDATA "content"
content-transfer-encoding CDATA "base64"
filename CDATA #REQUIRED
content-type CDATA #IMPLIED
charset CDATA #IMPLIED
attachorder CDATA #IMPLIED
modify (modifiable | modified | non) "non"
>

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="EUC-KR"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="exchangepack">
<xs:complexType>
<xs:sequence>
<xs:element ref="header"/>
<xs:element ref="contents" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="filename" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="header">
<xs:complexType>
<xs:sequence>
<xs:element ref="server"/>
<xs:element ref="sender"/>
<xs:element ref="receiver"/>
<xs:element ref="sendersystemname"/>
<xs:element ref="exchangetype"/>
<xs:element ref="doctype"/>
<xs:element ref="date"/>
<xs:element ref="administrativenum"/>
<xs:element ref="title"/>
<xs:element ref="addenda" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="server">
<xs:complexType>
<xs:sequence>
<xs:element ref="sendserverid"/>
<xs:element ref="receiveserverid"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sendserverid" type="xs:string"/>
<xs:element name="receiveserverid" type="xs:string"/>
<xs:element name="sender">
<xs:complexType>
<xs:sequence>
<xs:element ref="organ"/>
<xs:element ref="sendkey"/>
<xs:element ref="username" minOccurs="0"/>
<xs:element ref="userposition" minOccurs="0"/>
<xs:element ref="email" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="receiver">
<xs:complexType>
<xs:sequence>
<xs:element ref="organ"/>
<xs:element ref="recvkey"/>
<xs:element ref="username" minOccurs="0"/>
<xs:element ref="userposition" minOccurs="0"/>
<xs:element ref="email" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="organ">
<xs:complexType>
<xs:sequence>
<xs:element ref="orgname"/>
<xs:element ref="deptname"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="orgname">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="orgcode" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="deptname">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="deptcode" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="sendkey" type="xs:string"/>
<xs:element name="recvkey" type="xs:string"/>
<xs:element name="username" type="xs:string"/>
<xs:element name="userposition" type="xs:string"/>
<xs:element name="email" type="xs:string"/>
<xs:element name="sendersystemname" type="xs:string"/>
<xs:element name="exchangetype">
<xs:complexType>
<xs:sequence>
<xs:element ref="maintype"/>
<xs:element ref="subtype" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="maintype" type="xs:string"/>
<xs:element name="subtype" type="xs:string"/>
<xs:element name="doctype" type="xs:string"/>
<xs:element name="date" type="xs:string"/>
<xs:element name="administrativenum" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="addenda">
<xs:complexType>
<xs:sequence>
<xs:element ref="addendum" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="addendum">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="comment" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="contents">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="content"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="content">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="content-role" type="xs:string" use="required"/>
<xs:attribute name="sub-role" type="xs:string" default="content"/>
<xs:attribute name="content-transfer-encoding" type="xs:string" default="base64"/>
<xs:attribute name="filename" type="xs:string" use="required"/>
<xs:attribute name="content-type" type="xs:string"/>
<xs:attribute name="charset" type="xs:string"/>
<xs:attribute name="attachorder" type="xs:string"/>
<xs:attribute name="modify" default="non">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="modifiable"/>
<xs:enumeration value="modified"/>
<xs:enumeration value="non"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="EUC-KR" ?>
<!ELEMENT pack (header, contents)>
<!ATTLIST pack filename CDATA #REQUIRED >
<!ELEMENT header (type, date, sender, receiver, sender_userid, receiver_userid, sender_email?,sender_orgname, sender_systemname?, administrative_num)>
<!ELEMENT type EMPTY>
<!ATTLIST type doc-type (send|fail|arrive|receive|invalid|submit|return|approval) #REQUIRED >`
<!ELEMENT date (#PCDATA)>
<!ELEMENT sender (#PCDATA)>
<!ELEMENT receiver (#PCDATA)>
<!ELEMENT sender_userid (#PCDATA)>
<!ELEMENT receiver_userid (#PCDATA)>
<!ELEMENT sender_email (#PCDATA)>
<!ELEMENT sender_orgname (#PCDATA)>
<!ELEMENT sender_systemname (#PCDATA)>
<!ELEMENT administrative_num (#PCDATA)>
<!ELEMENT contents (content)*>
<!ELEMENT content (#PCDATA)>
<!ATTLIST content content-role CDATA #REQUIRED >
<!ATTLIST content content-transfer-encoding CDATA "base64" >
<!ATTLIST content filename CDATA #REQUIRED >
<!ATTLIST content content-type CDATA #IMPLIED >
<!ATTLIST content charset CDATA #IMPLIED >

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="EUC-KR"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="pack">
<xs:complexType>
<xs:sequence>
<xs:element ref="header"/>
<xs:element ref="contents"/>
</xs:sequence>
<xs:attribute name="filename" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="header">
<xs:complexType>
<xs:sequence>
<xs:element ref="type"/>
<xs:element ref="date"/>
<xs:element ref="sender"/>
<xs:element ref="receiver"/>
<xs:element ref="sender_userid"/>
<xs:element ref="receiver_userid"/>
<xs:element ref="sender_email" minOccurs="0"/>
<xs:element ref="sender_orgname"/>
<xs:element ref="sender_systemname"/>
<xs:element ref="administrative_num"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="type">
<xs:complexType>
<xs:attribute name="doc-type" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="send"/>
<xs:enumeration value="fail"/>
<xs:enumeration value="arrive"/>
<xs:enumeration value="receive"/>
<xs:enumeration value="invalid"/>
<xs:enumeration value="submit"/>
<xs:enumeration value="return"/>
<xs:enumeration value="approval"/>
<xs:enumeration value="normal-resend"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="date" type="xs:string"/>
<xs:element name="sender" type="xs:string"/>
<xs:element name="receiver" type="xs:string"/>
<xs:element name="sender_userid" type="xs:string"/>
<xs:element name="receiver_userid" type="xs:string"/>
<xs:element name="sender_email" type="xs:string"/>
<xs:element name="sender_orgname" type="xs:string"/>
<xs:element name="sender_systemname" type="xs:string"/>
<xs:element name="administrative_num" type="xs:string"/>
<xs:element name="contents">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="content"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="content">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="content-role" type="xs:string" use="required"/>
<xs:attribute name="content-transfer-encoding" type="xs:string" default="base64"/>
<xs:attribute name="filename" type="xs:string" use="required"/>
<xs:attribute name="content-type" type="xs:string"/>
<xs:attribute name="charset" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
Loading…
Cancel
Save