2016-11-14 1 views
0

Sa <Request>에 대해 하나, <Response>에 하나씩 두 가지 유형의 스키마가 있습니다. 나는 둘 다에 대한 스키마 xsd 있습니다.PHP DOMDocument schemaValidate, get 유형

유효하지 않더라도 스키마의 "유형"을 가져올 수 있기를 원합니다. 예를 들어, <Request to2="">...은 유효하지 않지만이 값이 Request임을 계속 알고 싶습니다.

특성이 잘못된 경우 문제가 $xml->schemaValidate(...)은 두 스키마 모두에 대해 false을 반환합니다.

(이 예제는 간단합니다. 실제로는 각 스키마 유형에 대해 여러 동사를 사용할 수 있으므로 하위 노드를 반복하고 nodeType이 무엇인지 확인하고 싶지는 않습니다.)

DOMDocument를 사용하여 선택 사항 만 유효성을 검사하는 방법 (속성 유효성 검사 없음)이 있습니까? 예를 들어

: 나는 $xml->schemaValidate('/path/to/request.xsd');$xml->schemaValidate('/path/to/response.xsd');를 사용 JUSE 경우가 "무효"때문에

<Request>...</Request>      ---> {type: 'Request', isValid: true}, 
<Response>...</Response>     ---> {type: 'Response', isValid: true}, 

<Request to="api/action">...</Request>  ---> {type: 'Request', isValid: true}, 
<Request tooo="api/action">...</Request> ---> {type: 'Request', isValid: false}, 

<Response type="json">...</Response>  ---> {type: 'Response', isValid: true}, 
<Response typeeee="json">...</Response>  ---> {type: 'Response', isValid: false}, 

것은 내가 각각 <Request tooo="api/action">...</Request><Response typeeee="json">...</Response>의 유형을 판별 할 수 없습니다

+0

예를 들려 줄 수 있습니까? – Machavity

답변

0

이 결합 된 XSD를 생성하는 태그 이름에 따라 두 유형의 유효성을 검사합니다.