SOAP (Java Web Service) 메시지 형식에 대한 제안이 필요합니다. 두 가지 메시지 형식을 생각해보십시오.SOAP (Java Web Service) 메시지 형식 generic (이름/값 등록 정보) 노드 vs 특정 노드
이러한 접근 방식에 대한 의견을 공유해주십시오. 무엇을 추천하나요? :
1) 특정 메시지 형식 데이터의 실제 이름으로 메시지 노드를 지정하면
프로 아래의 샘플을 볼 수 등 사용자 이름, 성, 사회 보장 번호 (SSN) .... 같은 속성 메시지 xsd에는 전달할 데이터의 실제 데이터 유형이 있습니다. 이렇게하면 데이터가 유효한지 확인할 수 있습니다.
단점 : 메시지 형식을 변경하면 xsd가 변경되어 여러 버전의 서비스가 이어집니다. 이것은 다른 버전의 서비스를 유지 보수하는 데 드는 비용입니다.
2) 일반 메시지 형식 이름 값 쌍과 함께 메시지 노드를 지정하십시오. 아래 예제 메시지를 참조하십시오.
장점 : 추가 데이터는 메시지 형식을 변경하지 않고 추가 속성과 함께 보낼 수 있습니다. 단일 버전의 메시지는 쉽게 유지 보수 할 수 있습니다.
단점 : 데이터는 입력되지 않았으며 유효성을 확인할 수 없습니다. 서비스 구현은 속성 이름을 하드 코딩하고, 데이터를 구문 분석하고, 데이터의 유효성을 검사해야합니다. 여러 값으로 데이터를 처리하는 경우 쉼표 (,)와 같은 구분 기호가 사용됩니다. 날짜, 시간, 통화 데이터 등의 서식이 지정된 데이터를 처리하는 것은 비용이 많이 듭니다.
특정 형식의 메시지
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:myTestServiceOperation xmlns:ns1="http://xmlns.myenterprise.com/myenterprise/myTestWebService/types/">
<UserInfo>
<BioData>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<SSN>123-34-567</PersonNumber>
<DateOfBirth>09/01/1980</DataOfBirth>
</BioData>
<EducationalInfo>
<Qualification>Master of Science</Qualification>
<Institute>ABC</Institure>
<CourseDuration>2 Years</CourseDuration>
</EducationalInfo>
<EmploymentInfo>
<JobTile>Administrator</JobTitle>
<Employer>XYZ Corp</Employer>
<EmploymentInfo>
</UserInfo>
</ns1:myTestServiceOperation>
</soap:Body>
</soap:Envelope>
일반 형식의 메시지
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:myTestServiceOperation xmlns:ns1="http://xmlns.myenterprise.com/myenterprise/myTestWebService/types/">
<Record category="BioData">
<Property name="FirstName" value="John"/>
<Property name="LastName" value="Smith"/>
<Property name="SSN" value="123-34-567"/>
</Record>
<Record category="Education">
<Property name="Qualification" value="Master of Science"/>
<Property name="Institute" value="ABC"/>
<Property name="CourseDuration" value="2 Years"/>
</Record>
<Record category="Employment">
<Property name="JobTile" value="Manager"/>
<Property name="XYZ Corp" value="XYZ Corp"/>
<Property name="CourseDuration" value="2 Years"/>
</Record>
</ns1:myTestServiceOperation>
</soap:Body>
</soap:Envelope>
우리와 동의하십시오 e 절대적으로 선택이 없을 때 이름 값 쌍. – Namphibian