2012-03-02 1 views
1

보안 검색에 실패했습니다.xsd 파일에서 maxOccurs = "unbounded"를 방지하는 방법

은 maxOccurs = "무제한의"

내 웹 서비스 중 하나에 서비스 참조 내 실버 클라이언트상의 XSD에서 온다.

xsd가 이런 방식으로 생성되지 않도록 웹 서비스에서 설정할 수있는 속성이나 무언가가 있습니까?

실제로는 WCF입니다.

답변

0

WCF에는 지원이 없습니다. wcf가 wsdl + xsd 클래스를 생성 할 때 실제 계약을 먼저 작성하고 수동으로 메시지 계약을 작성해도 maxOccurs 값이 1보다 큰 경우이를 무시합니다. 따라서 서비스를 공개하면 생성 된 계약에는 maxOccurs="unbounded".

  • 폴더에 계약 파일을 복사

    • 당신에게 계약에서 클래스를 생성 WSDL (+ XSD) : 그러나

      , 당신은 IWsdlExportExtension, IEndpointBehavior 인터페이스를 구현하는 사용자 정의 엔드 포인트 동작을 구현하여 변화를 쉽게이 동작을 수 있습니다 서비스 호스트 프로젝트에서

    • 서비스 끝점에 끝점 동작 추가
    • 끝점 동작 클래스에서 생성 된 스키마 가져 오기를 실제 xsd의

    이렇게 생성 된 계약에는 생성 된 계약 대신 본래의 스키마가 포함됩니다.

    또한 xsd를 사용하여 XML 파일의 유효성을 검사해야합니다. WCF는 maxOccurs 특성의 유효성을 검사하지 않기 때문입니다.

  • 관련 문제