2
내가 진정-NG를 사용하여 일부 XML 문서에 대한 스키마를 작성하는 노력하고있어 나는 징와 함께 사용할 때, 나는 오류 메시지가 이해가 안 :relaxng : 잘못된 스키마 정의?
이C:\tmp\xml>java -jar jing.jar -c list-test2.rnc list-test.xml
C:\tmp\xml\list-test2.rnc:6:10: error: repeat of "string" or "data" element
아무도 설명 할 수 왜 해결 방법을 알려주십시오. 여기
는 (단순성을 위해 고안) 샘플 문서입니다 :목록-test.xml의 :
리스트 test.rnc : 여기
<?xml version="1.0" encoding="UTF-8"?>
<list-test>
<list name="list1">
foo.bar.baz
quux
be.bop.a.loo.bop
<hole name="somename" />
tutti.frutti
abc678.foobar
</list>
<list name="list2">
test1
test2
test3
<hole name="hole1" />
<hole name="hole2" />
test4
<hole name="hole3" />
</list>
</list-test>
확인을 작동하는 스키마입니다 :
grammar {
start = element list-test { list-test-content }
list-test-content =
(element list { list-content })*
list-content =
attribute name { text },
(text | hole-element)*
hole-element =
element hole { hole-content }
hole-content =
attribute name { text }
}
하지만 특정과 일반 text
노드를 교체 할 때 텍스트 패턴, 나는 오류가 발생합니다.
리스트 test2.rnc가 :
grammar {
start = element list-test { list-test-content }
list-test-content =
(element list { list-content })*
list-content =
attribute name { identifier },
(qualified-identifier | hole-element)*
hole-element =
element hole { hole-content }
hole-content =
attribute name { identifier }
identifier =
xsd:token { pattern="[A-Za-z_][A-Za-z_0-9]*" }
qualified-identifier =
xsd:token { pattern="[A-Za-z_][A-Za-z_0-9]*(\.[A-Za-z_][A-Za-z_0-9]*)*" }
}