2012-09-19 2 views
0

는 XMLFILE의 조각을 감안할 때 :거의 동일한 쌍둥이가 없으면 왜이 DTD가 실패합니까?

<Active> 
    <SystemName Permissions="RW" Datatype="STRING" Case="MIXED_RESPECT">NASCENT Default System Name</SystemName> 
    <ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</ModelNumber> 

<!-- snip snip snip --> 

과 일치 DTD의 해당 조각을 그것을 :

/home/.../Active.xml:7: element ModelNumber: validity error : No declaration for attribute Permissions of element ModelNumber 
    <ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</M 
                     ^
/home/.../Active.xml:7: element ModelNumber: validity error : No declaration for attribute Datatype of element ModelNumber 
    <ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</M 
                     ^
/home/.../Active.xml:7: element ModelNumber: validity error : No declaration for attribute Case of element ModelNumber 
    <ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</M 

<!-- snip snip snip --> 
: DTD에 대한 XML을 실행할 때 나는 다음과 같은 오류를 얻을

<!ELEMENT Active (SystemName,ModelNumber,SerialNumber....)> 
    <!ELEMENT ModelNumber (#PCDATA)> 
     <!ATTLIST ModelNumber Permissions CDATA #FIXED "RO"> 
     <!ATTLIST ModelNumber Datatype  CDATA #FIXED "STRING"> 
     <!ATTLIST ModelNumber Case   CDATA #FIXED "MIXED_RESPECT"> 
    <!ELEMENT SystemName (#PCDATA)> 
     <!ATTLIST SystemName Permissions (RW|RO) "RO" 
          Datatype  CDATA #FIXED "STRING" 
          Case   CDATA #FIXED "MIXED_RESPECT"> 

<!-- snip snip snip --> 

누군가가 징징 대는 것을 설명 할 수 있습니까? 내가 눈을 뗄 때까지 Google을 보았습니다. SystemName이 작동하면 ModelNumber 등이 단지! Attlist를 볼 수있는 요소라는 것을 인식합니다!

답변

1

분석 결과가 정확합니다. 유효성 검사기가 ModelNumber 특성에 대한 선언을보고 있지 않습니다. DTD 프래그먼트에는 DTD 프래그먼트가 있고 DTD와 문서 인스턴스는 모두 동일한 방식으로 철자가 있으며 사용자가 보여주는 프래그먼트를 사용하여 시스템에서이 문제점을 복제 할 수 없습니다.

한 가지 가능한 원인은 유효성 검사자가 사용자가 생각하는 DTD를 읽지 않는다는 것입니다. 테스트하는 한 가지 방법은 구문 오류를 도입하거나 사용중인 것으로 생각되는 DTD에서 SystemName의 특성 중 하나를 억제하고 오류 메시지가 변경되는지 확인하는 것입니다.

행운을 비네.

+0

많은 분들께 감사드립니다. "그대로 작동해야합니다"라는 확인은 안심입니다. 나는 그것이 같은 xml과 dtd 문서를 읽고 있다고 확신한다. 나는 하나의 DTD 파일만을 가지고 있으며, 내가 변경 한만큼 오류의 더미는 줄어들었다. DTD 생성기에 대한 XML을 알고 계십니까? 나는 당신이 사용자 정의 할 수있는 단순한 - 마음대로 DTD를 만들 것이라고 생각한다. –