2012-10-30 2 views
1

을 통해 문서를 삽입하려고하는데 validate strict { $xml }을 통해 문서의 유효성을 검사하고 해당 출력을 삽입 호출에 사용하고 있습니다. 그러나 validate 호출의 출력에는 스키마에 지정된 기본값이 포함되지 않습니다.MarkLogic의 기본 스키마 값

간체 스키마

<xs:schema> 
    <xs:complexType name="fields-type" abstract="false" mixed="false"> 
    <xs:sequence minOccurs="1" maxOccurs="1"> 
     <xs:element default="Faulkner" maxOccurs="1" minOccurs="0" name="an_author" nillable="false" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="document-type" abstract="false" mixed="false"> 
    <xs:sequence minOccurs="1" maxOccurs="1"> 
     <xs:element name="fields" type="fields-type" minOccurs="1" maxOccurs="1" nillable="false"/> 
    </xs:sequence> 
    </xs:complexType> 
    <xs:element name="document" type="document-type" abstract="false" nillable="false"/> 
</xs:schema> 

문서 : 출력 문서가 <an_author> 요소에 추가없이 기본값 상기와 동일하다

<document> 
    <fields> 
     <an_author/> 
    </fields> 
</document> 

validate strict { $xml } 호출 한 후. 참고 : 대신 fixed 속성을 사용하여 스키마에서 시도했지만 동일한 결과가 나타납니다. xdmp:validate($xml, "strict")도 오류를 반환하지 않습니다.

편집 : XQuery 유효성 검사 지정 here에 따라 출력의 기본값이 지정되어 있어야합니다.

답변

2

기본값은 실제로 데이터 모델의 일부이지만 데이터 모델을 출력 할 때 반드시 직렬화되지는 않습니다. 기본 특성이 데이터 모델에 있는지 경로 식으로 처리하여 데이터 모델에 있는지 확인할 수 있습니다.

당신은 그들이 출력에 직렬화 얻을 수 있는지 확인하려면이 그들을 강제 출력 설정 방출 될 수있다 :

declare option xdmp:output "default-attributes=yes"; 

(또는 당신은 xdmp:quote을 기본적 속성 옵션을 설정할 수 있습니다 . 대안 적으로 또는 xdmp:save)

, 당신은 함께 모든 속성을 수행한다 데이터 모델 인스턴스의 복사본을 강제하지만,이 디폴트되었다는 것을 잊어 수 있습니다

let $d := validate strict { $node } 
return document { $d } 
+0

당신이 내 질문을 이해했다고 생각하지 않습니다. 'xs : element'의 스키마에 설정된 기본 속성은'validate' 호출 후에'an_author'의 값을'Faulkner'로 만들어야합니다. XML 스키마 사양 [여기] (http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints)에서 가져온 "스키마 처리기는 요소에 기본 속성과 동일한 값을 제공합니다". – sinemetu1

+1

나는 그녀가 당신의 질문을 이해하지 못했을 가능성이 있다고 생각하지만, 질문, 대답 및 귀하의 의견을 읽었을 때, 당신이 대답을 이해하지 못하는 것처럼 보입니다. 제안을 시도 했습니까? 'declare option xdmp : output "default-attributes = yes"를 표시하는 예제가 있습니까? 직렬화 된 문서에 여전히 기본값이 있습니까? 'validate' 호출 후에 디폴트 값이 실제로 데이터 모델에 나타나는지 또는 보이지 않는지 경로 표현식으로 확인 했습니까? –