XSD에 다음과 같은 몇 가지 규칙을 적용 할 수 있습니까? ID가 속성 인 모든 요소는 다른 요소가 해당 ID를 사용하지 않도록 고유 ID로 처리해야합니다. getElementById ("id")를 적용하는 방법은 그 이후에만 작동합니다.XSD 전역 규칙 적용
감사
XSD에 다음과 같은 몇 가지 규칙을 적용 할 수 있습니까? ID가 속성 인 모든 요소는 다른 요소가 해당 ID를 사용하지 않도록 고유 ID로 처리해야합니다. getElementById ("id")를 적용하는 방법은 그 이후에만 작동합니다.XSD 전역 규칙 적용
감사
당신이 당신의 식별자의 숫자 만이있는 경우, 당신은 XS를 사용할 수 없습니다 ID를. 가 여기에 샘플 스키마입니다 :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="root" type="rootType">
<xs:key name="attritemIdentifier">
<xs:selector xpath="item"/>
<xs:field xpath="@XYZ"/>
</xs:key>
</xs:element>
<xs:complexType name="rootType">
<xs:sequence>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="XYZ" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
그리고 여기에 유효한 인스턴스 : 즉시 같은 값으로 XYZ 속성을 가지고
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item XYZ="12345">item0</item>
<item XYZ="XYZ1">item1</item>
<item XYZ="XYZ2">item2</item>
<item XYZ="XYZ3">item3</item>
<item XYZ="XYZ4">item4</item>
<item XYZ="XYZ5">item5</item>
<item XYZ="XYZ9">item6</item>
<item XYZ="XYZ7">item7</item>
</root>
, 다음과 같은 오류가 발생합니다 :
CVC-신원 constraint.4.2.2 : 중복 키 값 [XYZ9] 신원 제약 요소 "루트"의 "attritemIdentifier"
에 대한 선언
내 요소 중 하나가 ID 특성을 가지고 있다면 원하는 경우 유형이어야합니다. xsd : ID 그러면 어떻게 할 수 있습니까? 내 ID는 항상 영숫자입니다. – Chandan
숫자로 시작하자마자 xs : Id 유형을 사용하지 않고 ID의 속성 이름을 사용할 수 있습니다. 내 스키마의 속성을 다음과 같이 바꿀 수 있습니다 :
exaclty ... 위의 "
xs : key 요소를 사용해야합니다. 참조 : http://stackoverflow.com/questions/4491983/xml-schema-key-keyref-how-to-use-them –
xsd : ID를 사용하면이 오류가 발생합니다 .-> attribucvc-datatype-valid.1.2. 1 : '41537'은 'NCName'의 유효한 값이 아닙니다. 그것은 내게 약간의 오류가 발생했습니다 : – Chandan
xsd : id에 관해서는이 타입은 NCName이어서 반드시 숫자로 시작하면 안됩니다. 그것은이 유형의 기이입니다. –