메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

OASIS CAM(CAMV)을 사용하는 XML 유효성 검증 프레임워크

선언적 프로그래밍 방법으로 XML 데이터 유효성 검증 규칙 작성

Puneet Kathuria, Advisory IT Architect, EMC
Puneet Kathuria is an Integration Architect working with IBM India Ltd. He has more than 13 years of experience, mainly in the application and integration architectures, and has been with IBM for the past four years.
David Webber, Senior Architect, INTEGRITYOne Partners
David is currently consulting on NIEM IEPD development for the US government and is based in Washington DC, USA. David is Chair of the OASIS CAM technical committee and co-developer of the CAM Studio Eclipse editor responsible for the majority of the XSLT processing scripts. David has over 30 years experience in the industry and in 2007 was recognized as a Senior Member of the ACM for his industry work in XML. David has authored many articles on the topic of XML and information exchange optimization, standards specifications for OASIS, and presented widely on XML in North America, Europe, and Asia.
Martin Roberts, CAM Open Source Project Developer/Designer, Ontology Systems
Martin is a consultant based in Suffolk, England specializing in XML, Ontologies, Java, Eclipse and Web solutions with over 20 years experience. Martin authored both the original OASIS CAM specifications and the CAM Studio Eclipse editor and CAMV validation engine implementations. Martin was also previously active in the telecommunications industry work on XML-based message exchanges and standards work in Europe. He has presented at a number of industry events including OASIS sponsored technology expositions in Europe particularly.

요약:  이 기사에서는 B2B 또는 B2C 비즈니스 패턴을 사용하는 비즈니스 파트너와 다양하고 복잡한 메시지를 교환할 수 있도록 지원하기 위해 OASIS CAM(Content Assembly Mechanism) 템플리트를 이용한 XML 유효성 검증 방법을 설명합니다. CAM 템플리트를 사용하면 유효성 검증 규칙을 단순화 및 구체화하는 한편, 게이트웨이가 직접적인 관련은 없는 정보에 대한 패스스루의 역할을 하도록 허용할 수 있습니다. 필요한 유효성 검증 서비스를 제공하기 위해 Eclipse 및 Java™ 기술을 사용하여 빌드한 오픈 소스 컴포넌트를 이용해 그동안 쌓은 경험도 소개합니다. STAR(Standards for Technology in Automotive Retail) 자동차 BOD(Business Object Document) 스키마와 관련 CAM XML 템플리트를 사용하는 XML 예제와 샘플 코드 스니펫에 따라 애플리케이션 개발 프로세스가 진행되는 과정을 살펴보십시오.

원문 게재일:  2010 년 5 월 11 일 번역 게재일:   2010 년 10 월 11 일
난이도:  중급 영어로:  보기 PDF:  A4 and Letter (251KB | 15 pages)Get Adobe® Reader®
페이지뷰:  3155 회
의견:  


비즈니스 및 기술 과제

오늘날과 같이 다양한 거래 파트너와 함께 XML 및 연관된 대규모 XSD 스키마를 이용하여 복잡한 정보를 교환하는 환경에서는 모든 수신 트랜잭션을 정확하게 처리하도록 지원하고 이를 유지 관리하는 것이 중요한 과제가 된다. 현재, XML 스키마와 DTD는 XML 문서의 구조적 내용을 확인하거나 검증하는 기능을 제공한다. XML 스키마의 일부로서 유효성 검증 규칙을 수용할 수도 있지만, XML 스키마나 DTD를 사용하여 모든 종류의 트랜잭션 유효성 검증을 수행할 수 있는 것은 아니다.

자주 사용하는 약어

  • API: Application Programming Interface
  • B2B: Business-to-business
  • B2C: Business-to-consumer
  • DTD: Document Type Definition
  • HTTP: Hypertext Transfer Protocol
  • JAX-RPC: Java API for XML-Based remote procedure call
  • JDOM: Java-based Document Object Model
  • J2EE: Java 2 Platform, Enterprise Edition
  • OASIS: Organization for the Advancement of Structured Information Standards
  • UI: User Interface
  • WSDL: Web Services Description Language
  • XML: Extensible Markup Language
  • XPath: XML Path Language
  • XSD: XML Schema Definition
  • XSLT: Extensible Stylesheet Transformations

STAR(Standards for Technology in Automotive Retail)와 같은 산업별 표준이 등장하면서, 표준 XML 메시지 교환 형식 전체가 XML 스키마 형태로 제공된다. 웹 서비스의 소비자와 공급자는 모두 해당 산업 표준 기구에서 인증하는 이런 스키마를 준수해야 한다. 하지만, 이런 산업별 스키마는 최소한의 유효성 검증과 느슨하게 바인드되어 있으므로 수신 XML의 구조적 유효성 검증에만 사용할 수 있다. 스키마 검사 횟수를 증가시키는 필수 유효성 검증을 구현하려면 추가적인 코드가 요구된다. 이런 유효성 검증을 통해 데이터가 특정한 구조로 되어 있을 것으로 예상하고 비즈니스 컨텐츠 유효성 검증 규칙을 준수하는 애플리케이션이나 컴포넌트에서 데이터를 수신할 때 오류를 예방한다.

웹 서비스와 이에 연관된 XML 애플리케이션에서 필요한 유효성 검증 논리를 구현하는 가장 일반적인 방법은 사용자 정의 코드를 작성하는 것이다. 결과적으로, 유효성 검증 규칙은 애플리케이션 내부에 포함되어 이를 손쉽게 조정, 문서화 또는 공유할 수 없다. 필요한 유효성 검증의 횟수와 특성에 따라, 파트너가 더 추가될수록 유효성 검증 코드가 복잡하고 길어질 수 있고 이런 코드의 유지 관리가 상당한 부담이 될 수 있다. 유효성 검증 논리가 변경될 때마다 그 코드를 다시 컴파일하여 프로덕션 서버에 다시 배포하는 데 따른 시간, 노력 및 위험도 늘어난다.

독립형 애플리케이션 외에, ESB(Enterprise Service Bus)를 통해 서비스를 노출할 때도 유효성 검증이 필수적이다. 그림 1은 메시징 버스를 중심으로 하여 ESB의 일반적인 아키텍처를 나타낸 것이다. 버스는 SOAP, HTTP 및 JMS(Java Messaging Service)와 같은 표준을 바탕으로 메시지 배달 서비스를 제공한다. ESB는 개별 트랜잭션의 서비스 품질 요구 사항을 바탕으로 하여 서로 상호 작용할 수 있는 서비스를 지원한다. ESB는 SOAP, XML, WSDL, JMS, J2EE, JAX-RPC 등의 다양한 표준도 지원한다.


그림 1. ESB 아키텍처에서 유효성 검증을 수행하는 방법
메시지 소비자와 메시지 공급자 사이에 있는 ESB 메시징 계층 다이어그램

개발자들이 직면한 주요 과제 중 하나는 ESB를 통해 상호 작용하는 동안 메시지 공급자 및 메시지 소비자 엔드포인트에서 메시지 유효성 검증을 어떻게 수행할 것인가 하는 점이다. 예를 들어, 그림 1과 같이 웹 서비스 컴포넌트가 기존 애플리케이션에서 정보를 요구할 수 있다. 웹 서비스(소비자)는 ESB를 통해 기존 애플리케이션(공급자)으로 정보를 요청하는 메시지를 보낸다. 애플리케이션 컴포넌트에서는 올바른 정보를 가진 특정한 형식의 요청을 요구하므로, 요청을 처리하기 전에 요청 메시지의 유효성을 검증한다. 웹 서비스 컴포넌트에는 고유의 요구 사항이 있으며, 그에 따라 응답 메시지의 유효성을 검증한다. 두 엔드포인트에서 다른 프로토콜이나 표준을 사용하는 경우 ESB는 각각의 메시지를 변환할 수 있는데, 유효성 검증을 수행한 후 메시지를 변환한다.

각각의 공급자와 소비자는 고유의 요구 사항이 있으므로, 트랜잭션 유형 개수와 유효성 검증 횟수에 따라 모든 유효성 검증을 정의, 작성 및 테스트하느라 개발 주기가 길어질 수 있다. 각각의 유효성 검증 컴포넌트가 메시지 유효성 검증에 대한 올바른 피드백을 호출 컴포넌트에 제공할 수 있을 때까지 이런 안정화 단계가 진행된다.


솔루션 설명

여기서 설명하는 해결 방법은 OASIS CAM(Content Assembly Mechanism) 스펙을 바탕으로 XML 유효성 검증 서비스를 구현하는 것이다. OASIS CAM 템플리트 접근 방식은 기업에서 XML 형식으로 정보를 교환하기 위한 공통의 교환 모델을 만들 수 있게 해주는 XML 컨텐츠 처리 및 유효성 검증에 대한 간단한 접근 방식을 기반으로 한다. CAM 템플리트는 컨텍스트 기반 규칙, 코드 목록 및 크로스 필드 유효성 검증을 지원한다. XSD 스키마로만 수많은 크로스 필드 유효성 검증을 구현할 수는 없다. 다른 경우에는 게시된 산업 스키마에서 모든 유효성 검증 유형을 수용하는 것이 불가능하다.

CAM 템플리트를 정의하는 데 사용되는 CAM Studio(Eclipse 기반 UI 템플리트 편집기)가 솔루션에 포함된다. CAMV 유효성 검증 엔진은 런타임에서 컴파일된 특정 CAM 템플리트로 XML의 유효성을 검증하는 데 사용되는 오픈 소스 Java API 세트를 제공한다. CAM Studio 템플리트 편집기에서는 사용자 정의 XPath 표현식을 생성된 템플리트에 추가하는 기능을 지원하지만, UI를 사용하면 어떤 사용자 정의 표현식도 작성하지 않고 대부분의 규칙을 정의할 수 있다.

그림 2는 유효성 검증 규칙의 라이프사이클에서 모델, 작성 및 테스트, 배치 및 모니터 단계를 나타낸 것이다.


그림 2. 유효성 검증 규칙 라이프사이클
유효성 검증 규칙을 개발하기 위한 라이프사이클(모델, 작성 및 테스트, 배치, 모니터) 다이어그램

모델 단계

이 단계에서는 데이터 엔티티와 그 데이터 요소가 해당 유효성 검증 규칙으로 식별된다. 필수적인 XML 교환 스키마가 디자인되거나, 필수 요소가 STAR(Standards for Technology in Automotive Retail) 스키마와 같은 기존의 산업 표준 스키마로 매핑된다.

작성 및 테스트 단계

CAM 템플리트는 CAM Studio 편집기를 사용하여 어셈블 또는 작성된다. 다.음은 CAM 템플리트를 작성할 때 제공되는 세 가지 가능한 편집기 옵션이다.

  1. 처음부터 작성 또는 손으로 만들기
  2. 기존 XML 스키마 사용
  3. 기존 XML 인스턴스 사용

CAM 템플리트를 작성한 후, 다음 단계는 각각의 요소와 속성을 모두 검토하고 유효성 검증 규칙을 적절히 지정하는 것이다. 편집기의 패널에 각 템플리트 노드에 대한 규칙이 표시된다. 그림 3은 CAM 템플리트 편집기의 템플리트 구조를 나타내는 화면을 캡처한 것이다.


그림 3. CAM 템플리트 편집기의 CAM 템플리트
템플리트 구조의 아웃라인을 보여주는 CAM 템플리트 편집기의 화면 캡처

모든 유효성 검증 규칙이 2진 형식(즉, 통과 또는 실패)일 필요는 전혀 없지만, CAM에서는 유효성 검사 실패를 경고로 분류한다. 이런 기능은 서비스 공급자 쪽에서 교정 조치를 취할 수 있는 상황에 유용하게 쓰이는데, 페이로드를 수정하여 전체 메시지를 거부하지 않고 메시지를 사용할 수 있게 만들 수 있다. 예를 들어, 어떤 규칙에서는 특정 설명 필드의 길이를 255자 이내로 제한해야 할 수도 있지만, 길이가 최대값을 초과할 때 요청 메시지를 거부하면 안 되고 앞의 255자만 설명에서 사용될 것임을 소비자에게 알리는 경고를 보내야 한다.

이 기사의 팁 및 트릭 섹션에서 유효성 검증 메시지 분류를 경고로 설정하는 자세한 방법을 확인할 수 있다.

배치 단계

애플리케이션 런타임 CAMV 엔진에서 CAM 템플리트를 사용하기 전에 이 템플리트는 CAM Studio Editor를 사용하여 컴파일된다. 컴파일된 형식은 원본 CAM 템플리트 자체의 압축된 XML 버전으로서, CAMV 유효성 검증 엔진의 성능을 최적화하도록 디자인되었다. CAM 템플리트를 컴파일하려면 Tools > Compile Template 메뉴 옵션을 선택한다. 그러면 런타임에서 사용될 템플리트의 .cxx 파일 형식이 생성된다.

CAMV 유효성 검증 엔진에서는 어떤 Java 애플리케이션에서든 적절한 CAM 템플리트로 입력 XML의 유효성을 검증하는 데 사용할 수 있는 간단한 오픈 소스 Java API를 제공한다. Listing 1의 코드 스니펫은 CAMV의 사용법을 보여준다.


Listing 1. CAMV API의 사용법

TemplateValidator tv = new TemplateValidator(templateDocument);
tv.setErrHandler(new ElementErrorHandler(tv));

boolean tvResult = tv.validate(ioReader);

if (tvResult){
        System.out.println("No errors, might be warnings.....");
}

List errList = tv.getErrors();
List warnList = tv.getWarnings();

오류 및 경고 메시지의 형식은 다음과 같다.

<오류 분류>: <XPATH> => <오류 또는 경고 메시지> => Node: <노드 이름> => attribute: <속성 이름>

예를 들어, 오류 메시지는 다음과 같은 형태이다.

/p:ProcessRepairOrder[1]/p:ApplicationArea[1]/p:CreationDateTime[1]=>내용이 마스크에 맞지 않음:YYYY-MM-DD'T'HH:MI:SSZ =>Node: CreationDateTime

경고 메시지는 다음과 같은 형태이다.

경고: /p:ProcessRepairOrder[1]/p:ProcessRepairOrderDataArea[1]/p:RepairOrder[1] /p:RepairOrderHeader[1]/p:OwnerParty[1]/p:SpecifiedPerson[1]/p:ResidenceAddress[1] /p:LineOne[1]=> 길이가 80 미만이어야 함 =>Node: LineOne

모니터 단계

CAMV를 사용하면 모든 유효성 검증 확인을 구체화할 수 있고 이들을 코드 안에 임베드하거나 사용자 정의 코딩을 사용하여 구현할 필요가 없다. 모니터링 주기 동안, 유효성 검증 템플리트를 업데이트만 해도 추가적인 유효성 검증 요구를 충족시킬 수 있다. 더 많은 유효성 검증을 추가하거나 기존 유효성 검증을 제거하려면 컴파일된 CAM 템플리트(.cxx 파일)를 다시 배포한다. 유효성 검증 논리가 변경되는 경우 어떤 Java 코드도 다시 컴파일하고 다시 배치할 필요가 없다.


최신 CAMV 릴리스의 새로운 기능

CAMV의 최신(2009년 12월) 릴리스에 추가된 주요 기능 중 몇 가지를 소개한다.

  1. 기본 Java 1.6 외에도 Java 1.5를 위해 이전 버전과 호환되는 릴리스 다운로드 버전을 만들었다.
  2. CAMV는 스레드로부터 안전하므로, WebSphere® Application Server 등의 모든 J2EE 컨테이너에 배치 가능하다.
  3. CAMV는 현재 JDOM 문서 외에도 XML 입력을 StringReader로 받아들이므로, 메시지 처리 중 발생 가능한 직렬화 및 직렬화 해제 인스턴스 수가 줄어든다.
  4. 이제는 단일 XML 요소나 속성에서 여러 가지 조건을 정의할 수 있다.

팁 및 트릭

다음은 자동차 업계의 한 주요 조직을 위한 STAR 기반 웹 서비스를 노출하는 B2B 게이트웨이에 대한 유효성 검증 프레임워크를 만들기 위해 CAMV를 사용한 최근의 프로젝트에서 확인한 유용한 정보이다.

유효성 검증 분류

CAMV에서는 오류 메시지 외에도 경고 메시지를 제공하기 위해 유효성 검증 규칙 작성을 지원한다. 경고 메시지에 대한 유효성 검증을 지정하려면 XML 요소에 대해 조건부 XPath 표현식을 지정해야 한다.

예를 들어, 특정 필드의 길이가 지정된 한계인 255자를 초과하는 경우 웹 서비스 요청을 거부할 필요가 없는 비즈니스 시나리오를 고려한다. 백엔드 시스템의 요구에 따라 이 길이를 초과하는 경우 비즈니스 의사결정은 필드의 길이를 255자로 자르는 것이지만, 호출 컴포넌트에 경고 메시지를 전달해야 한다.

CAM 템플리트 규칙에서 printmessage() 표현식을 지정하면 그런 시나리오를 처리할 수 있다.

메시지 텍스트에는 접두부로 Warning:이 표시된 다음 length should be less than 255와 같이 필요한 경고 메시지가 표시되어야 한다. 전체 메시지 텍스트는 Warning: length should be less than 255로 나타난다.

특정 요소의 길이가 지정된 길이를 초과하는 경우에만 경고가 리턴되므로, 이 규칙은 조건부로 지정되고 그림 4에 표시된 CAM Studio Editor 표현식 입력 마법사 도구의 화면 캡처와 같이 길이 검사를 수행하기 위한 XPath 표현식이 작성된다.


그림 4. 경고 규칙 구성 방법
255자 길이 초과 여부를 검사하는 경고 메시지 규칙의 화면 캡처

CAMV 템플리트 캐시

CAMV 템플리트를 메모리로 캐시하여 반복되는 유효성 검증을 수행하고, 수행되는 각각의 유효성 검증 모두에 대해 하드 디스크에서 템플리트를 읽지 않을 수 있다. 이렇게 하면 디스크 I/O가 줄어들고 성능과 처리량이 크게 개선된다.

유효성 검증 오류 검사

CAMV Java 메소드 TemplateValidator.validate(..)는 경고가 리턴되더라도 true를 리턴한다. 이 메소드는 오류가 리턴될 때만 false로 설정된다. 따라서 경고만 리턴되는 경우에는 getWarnings() 메소드를 사용하여 모든 경고 메시지 목록을 얻는다.

유효성 검증 메시지

리턴되는 메시지(XPath 경로, 유효성 검증 메시지 및 노드 이름이 들어 있음)가 비즈니스 시나리오에 충분치 않고 자세한 정보가 필요한 경우, 클라이언트 애플리케이션에서 사용자 정의 코드를 만들 수 있다. Listing 2에 나타낸 것처럼, CAMV에서는 CAMERROR 및 CAMWARN 속성을 입력 교환 메시지 XML에 추가한 후 동일한 입력 XML을 리턴한다.


Listing 2. 유효성 검증 수행 후 수정된 XML

<p:ApplicationArea>
<p:Sender>
<p:CreatorNameCode>CNV</p:CreatorNameCode>
<p:SenderNameCode>SNC</p:SenderNameCode>
</p:Sender>
<p:CreationDateTime CAMERROR="CreationDateTime | Content does not conform to the
mask:YYYY-MM-DD'T'HH:MI:SSZ">2001-12-31T12:00:00</p:CreationDateTime>
<p:Destination/>
</p:ApplicationArea>

<p:ResidenceAddress>
<p:LineOne CAMWARN="WARNING:LineOne |  length should be less than 80">100 Moon Drive 
100 Moon Drive 100 Moon Drive 100 Moon Drive 100 Moon Drive 100 Moon Drive</p:LineOne>
<p:LineTwo>APT # 100</p:LineTwo>
<p:CityName>MALIBU</p:CityName>
<p:CountryID>US</p:CountryID>
<p:Postcode>99999</p:Postcode>
<p:StateOrProvinceCountrySub-DivisionID>CA</p:StateOrProvinceCountrySub-DivisionID>
</p:ResidenceAddress>

와일드카드 표현식

템플리트에 규칙을 입력할 때, (기본적으로) 위치에 상관없이 선택과 일치하는 현재 노드에서 문서에 있는 모든 노드를 선택하는 두 개의 슬래시(//)로 구성된 와일드카드 표현식을 사용하여 XPath 유효성 검증 표현식이 지정된다.


그림 5. 규칙을 정의하는 동안 와일드카드 표현식을 지정하는 방법
두 개의 슬래시(와일드카드 값)를 사용하는 XPath 표현식을 이용한 규칙의 화면 캡처

이를 통해 특정 요소의 모든 해당 인스턴스에 적용되는 규칙이 생성된다. (주: 이 규칙은 특정 요소의 다른 모든 인스턴스에서는 즉시 보이지 않게 될 수 있지만, CAM 템플리트 편집기 보기에서 템플리트를 새로 고친 후 볼 수 있게 됨).

하지만, XML 요소의 특정 인스턴스에 이런 검사를 적용할 필요가 있는 경우에는 Rule XPath 선택란에 Full을 선택하는 것이 좋다.


그림 6. 규칙을 정의하는 동안 명시적인 표현식을 지정하는 방법
명시적인 XPath 표현식을 이용한 규칙의 화면 캡처

요약

CAMV를 사용하면 유효성 검증 확인을 일관되게 시행한 다음 빠르게 규칙을 변경하여 메시지 처리를 미세 조정함으로써 특정 파트너 교환 및 컨텐츠에 일치시킬 수 있다. 기존에는 백엔드 애플리케이션 코드 내부에 깊이 임베드되었던 유효성 검증 규칙을 구체화함으로써, 예측 가능성을 더욱 높인 메시지 처리로 제어 및 관리 능력이 훨씬 개선되었다. 이런 표준 기반 규칙 템플리트를 파트너와 선택적으로 공유함으로써 여러 시스템에 걸쳐 손쉽게 더 나은 컨텐츠 처리를 구현하고 적절히 조정할 수 있다.

적응 능력과 내결함성이 더욱 향상된 프로세스를 이용해, 애플리케이션이 더욱 다양한 컨텐츠를 처리할 수 있으므로, 지원 및 유지 관리 비용을 줄이면서도 파트너와 폭넓고 다양한 상호 작용을 손쉽게 수행하도록 지원할 수 있으며—이는 일반적인 경험과는 정반대의 경험이다.

오픈 소스를 사용함으로써 솔루션 개발과 CAMV 엔진을 개발 환경으로 통합하는 데 있어 협업이 크게 촉진되었다.

전체적으로, 이 프로젝트에서는 XML과 동적으로 구성 가능한 XML 규칙 템플리트를 혁신적인 방법으로 사용함으로써, 정적으로 컴파일된 코드 리소스에만 의존하는 것보다 더 낫고 더 안정적이고 더 빠르며 우수한 고객 애플리케이션 경험을 제공할 수 있다는 점을 입증했다.



다운로드 하십시오

설명이름크기다운로드 방식
Sample Java project that uses CAMV Java APIsValidationFrameworkSample.zip2032KBHTTP

다운로드 방식에 대한 정보


참고자료

교육

제품 및 기술 얻기

  • OASIS CAM specification standard: CAM 스펙을 다운로드하고 검토할 수 있는 웹 사이트이다.

  • IBM 제품 평가판을 다운로드하거나 IBM SOA Sandbox의 온라인 시험판을 살펴보고 DB2®, Lotus®, Rational®, Tivoli® 및 WebSphere®의 애플리케이션 개발 도구 및 미들웨어 제품을 사용해 볼 수 있다.

토론

필자소개

Puneet Kathuria is an Integration Architect working with IBM India Ltd. He has more than 13 years of experience, mainly in the application and integration architectures, and has been with IBM for the past four years.

David is currently consulting on NIEM IEPD development for the US government and is based in Washington DC, USA. David is Chair of the OASIS CAM technical committee and co-developer of the CAM Studio Eclipse editor responsible for the majority of the XSLT processing scripts. David has over 30 years experience in the industry and in 2007 was recognized as a Senior Member of the ACM for his industry work in XML. David has authored many articles on the topic of XML and information exchange optimization, standards specifications for OASIS, and presented widely on XML in North America, Europe, and Asia.

Martin is a consultant based in Suffolk, England specializing in XML, Ontologies, Java, Eclipse and Web solutions with over 20 years experience. Martin authored both the original OASIS CAM specifications and the CAM Studio Eclipse editor and CAMV validation engine implementations. Martin was also previously active in the telecommunications industry work on XML-based message exchanges and standards work in Europe. He has presented at a number of industry events including OASIS sponsored technology expositions in Europe particularly.

잘못된 도움말 신고

부정사용 신고

감사합니다. 이 항목은 운영자가 관심을 표시했습니다.


잘못된 도움말 신고

부정사용 신고

제출실패 신고. 나중에 다시 실행해주세요.


디벨로퍼웍스 로그인


IBM ID가 필요하세요?
IBM ID를 잊으셨습니까?


비밀번호를 잊으셨습니까?
비밀번호 변경

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

화면상에 보여지는 닉네임을 정하세요.

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

3개의 &이나 대쉬를 포함해주시고 31글자내로 제한해주세요.


developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


아티클 순위

의견

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=XML, 자바
ArticleID=549771
ArticleTitle=OASIS CAM(CAMV)을 사용하는 XML 유효성 검증 프레임워크
publish-date=05112010
author1-email=puneet.kathuria@in.ibm.com
author1-email-cc=
author2-email=drrwebber@acm.org
author2-email-cc=
author3-email=martin.me.roberts@googlemail.com
author3-email-cc=

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.