2014-10-02 4 views
0

누군가 내가 잘못 생각한 부분을 지적 해 주실 수 있습니까? 이것은 심각하게도 나를 위해 루프를 던지고 있습니까?!?!?! 2 : 마크 업 선언을 포함하거나 문서 유형 선언이 가리키는 잘 형성해야 내가 ret.dtd이DTD가 잘 형성되지 않았습니다

XML 파싱을 할 때 일부 XML 코딩을 위해 DTD를을 writting

... 나는 오류가 계속 . 누군가가 도움을

<!DOCTYPE ret [ 
<!-- 
1.  The element ret 
1.1. The element ret has an attribute version that must have the value 1.0 
1.2. The element ret has a required attribute date that has a text representing the date of feed. 
1.3. The element ret can have 0 or more feed elements 
1.4. The element ret's last element is a required doc-copyright element. The copyright statement for your company. --> 

<!ELEMENT ret (feed)*> 
<!ATTLIST ret version CDATA #FIXED "1.0"> 
<!ATTLIST ret date CDATA #REQUIRED > 

<!-- 
2. The element feed 
2.1. The element feed starts with a required source element. Must appear exactly once. The source of the feed 
2.2. The element feed's second element feed-desc is optional, but if present, appears no more than once. This is a description of the feed and its source. 
2.3. The element feed's third element info is optional, but if present, appears no more than once. This is additional information about the feed. 
2.4. The element feed's last element is a required stories element. Must appear exactly once. A list of feed stories. --> 

이 내 DTD의 바로 그 시작이다를 제공하는

나는 몇 가지 코드를 게시, 희망의 충분한 것입니다 ... 내가 뭔가를 놓친 게 뭐죠?

+0

에 오신 것을 환영합니다 :

다음은 같은 오류가 있었고, 중복 DOCTYPE 선언을 제거하여 해결 된 또 다른 질문입니다. [SO help files] (http://stackoverflow.com/help/how-to-ask)와 Eric Raymond와 Rick Moen의 에세이 [효과적인 질문을하는 법]에서 효과적인 질문을하는 데 좋은 조언이 있습니다 (http://catb.org/~esr/faqs/smart-questions.html). 귀하가 제공하는 DTD의 일부는 부적절한 형태가 아닙니다. 최소한의 작업 예제를 작성하는 것이 좋습니다. 가능한 한 가장 작은 예제로 문제를 설명하고 오류 메시지가 나옵니다. –

답변

1

별표를 콘텐츠 모델 외부에서 사용할 때 문제가 없어야합니다. 모델 (feed)*이 좋을 것입니다. (Xerces 또는 W3C Markup Validation Service을 사용하여 유효합니다.)

오류에서 파일 이름 "ret.dtd"를 기반으로하면 외부 DTD를 사용하는 것처럼 보입니다. 외부 DTD에는 DOCTYPE 선언이 없어야합니다. DOCTYPE 선언은 XML 인스턴스에 있어야합니다. DTD에서 <!DOCTYPE ret [ (및 ]>)을 삭제 해보십시오. 스택 오버플로 External referenced DTD in XML