Я пытаюсь разобраться в уникальных и ключевых элементах XML-схемы,
особенно в отношении селектора и элементов поля внутри.
Мне неясно с селекторами и полями, и мне нужно разобраться в этом.
Предположим, у меня был файл XML с компаниями, включенными в функциональные группы.
У меня есть элемент в каждой группе с уникальным полем (для ссылки
каждая конкретная группа).
Я хочу создать уникальное поле в каждой компании в списке
каждая группа, которая будет уникальной только внутри этой конкретной группы.
Было бы это правильно?:
<xs:unique id="company_group_refs" name="company_group_refs">
<xs:selector xpath="root/all_companies/company_group"/>
<xs:field xpath="company_group_ref"/>
</xs:unique>
<xs:unique id="company_refs" name="company_refs">
<xs:selector xpath="root/all_companies/company_group"/>
<xs:field xpath="company/company_ref"/>
</xs:unique>
Если это так, могу ли я привести вышесказанное к этому?:
<xs:unique id="company_refs" name="company_refs">
<xs:selector xpath="root/all_companies/company_group"/>
<xs:field xpath="company_group_ref"/>
<xs:field xpath="company/company_ref"/>
</xs:unique>
Для ссылки на любое название компании, в частности, я хочу иметь возможность
дать выражение XPath, подобное этому:
корень / all_companies / company_group [company_group_ref = x1] / компания [company_ref = x2] / имя
Где: x1 = уникальная ссылка для группы компаний.
и: x2 = уникальная ссылка на компанию в этой группе.
Ниже приводится выдержка из файла XML, которая иллюстрирует этот сценарий:
<all_companies>
<company_group>
<company_group_name>Cleaning</company_group_name>
<company_group_ref>1</company_group_ref>
<company>
<name>Ajax</name>
<company_ref>1</company_ref>
</company>
<company>
<name>Bloomburg</name>
<company_ref>2</company_ref>
</company>
<company>
<name>Morris</name>
<company_ref>3</company_ref>
</company>
</company_group>
<company_group>
<company_group_name>Electrical</company_group_name>
<company_group_ref>2</company_group_ref>
<company>
<name>Armstrong</name>
<company_ref>1</company_ref>
</company>
<company>
<name>Bloomburg</name>
<company_ref>2</company_ref>
</company>
<company>
<name>Zap Electrical</name>
<company_ref>3</company_ref>
</company>
<company>
<name>Morris</name>
<company_ref>4</company_ref>
</company>
</company_group>
</all_companies>
СПАСИБО !!!