2016-07-21 5 views
0

나는 C#을 클래스에 아래 역 직렬화 된 XML에 노력하고있는 동안 선언되지 않은 접두어 :NS0는 Deserialising의 XML

<StaffingOrder xmlns="NameSpaceName"> 
    <ReportingRequirements> 
    <ns0:ManagerName>__MANAGER_NAME</ns0:ManagerName> 
    <ns0:SupervisorName>__SUPERVISOR_NAME</ns0:SupervisorName> 
    </ReportingRequirements> 
    <Comments>Comment</Comments>  
</StaffingOrder> 

을하지만 다음과 같은 오류가 점점 오전 deserialize하는 동안 :

Error: There was an error processing 'Test.xml'. 
    - 'ns0' is an undeclared prefix 

을 내가 어떻게 할 수 ns0 태그를 비 직렬화합니다.

+1

직렬화 복원은 일반적으로 분석이라고합니다. XML이 잘못 작성되면 구문 분석 할 수 없습니다. 이 XML이 작성되지 않은 곳을 찾아 소스에서 수정하십시오. –

답변

2

접두어 ns0이 어떤 네임 스페이스에도 바인딩되어 있지 않기 때문에 XML 문서가 네임 스페이스 형식이 아닙니다. 이것이 파싱 될 수없는 이유입니다. 과 같이, 그 사용의 주위에 어떤 태그에 NS0 속성 :

는 그것은 의 xmlns와 선택의 네임 스페이스에 바인드 할 수 있습니다

<StaffingOrder 
    xmlns="NameSpaceName" 
    xmlns:ns0="http://www.example.com/some/namespace"> 
    <ReportingRequirements> 
    <ns0:ManagerName>__MANAGER_NAME</ns0:ManagerName> 
    <ns0:SupervisorName>__SUPERVISOR_NAME</ns0:SupervisorName> 
    </ReportingRequirements> 
    <Comments>Comment</Comments>  
</StaffingOrder>