Невозможно загрузить политику, элемент ClaimType имеет недопустимый дочерний элемент, ожидалось: InputValidationReference, PredicateValidationReference.

Когда я пытаюсь загрузить следующую претензию, это не удается:

<ClaimType Id="my-claim">
    <DisplayName>My Claim</DisplayName>
    <DataType>string</DataType>
    <UserHelpText>some text</UserHelpText>
    <UserInputType>TextBox</UserInputType>
    <Restriction>
        <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&amp;'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="..." />
    </Restriction>
    <DefaultPartnerClaimTypes>
        <Protocol Name="OAuth2" PartnerClaimType="blah" />
        <Protocol Name="OpenIdConnect" PartnerClaimType="blah" />
    </DefaultPartnerClaimTypes>
</ClaimType>

Со следующей ошибкой:

Невозможно загрузить политику. Причина: проверка не удалась: в политике «B2C_1A_TRUSTFRAMEWORK_BUILDINGBLOCKS» клиента «mytenant.onmicrosoft.com» обнаружена 1 ошибка проверки.

Ошибка проверки схемы обнаружена в строке 172 столбца 10 политики «B2C_1A_TRUSTFRAMEWORK_BUILDINGBLOCKS» клиента «mytenant.onmicrosoft.com»: элемент «ClaimType» в пространстве имен »http://schemas.microsoft.com/online/cpim/schemas/2013/06" имеет недопустимый дочерний элемент "DefaultPartnerClaimTypes" в пространстве имен " http://schemas.microsoft.com/online/cpim/schemas/2013/06 < / а> '.

Список возможных ожидаемых элементов: 'InputValidationReference, PredicateValidationReference' в пространстве имен 'http://schemas.microsoft.com/online/cpim/schemas/2013/06 ».


Если я перемещаю <DefaultPartnerClaimTypes> вверх немного, политика загружается.

<ClaimType Id="my-claim">
    <DisplayName>My Claim</DisplayName>
    <DataType>string</DataType>
    <DefaultPartnerClaimTypes>
        <Protocol Name="OAuth2" PartnerClaimType="blah" />
        <Protocol Name="OpenIdConnect" PartnerClaimType="blah" />
    </DefaultPartnerClaimTypes> 
    <UserHelpText>some text</UserHelpText>
    <UserInputType>TextBox</UserInputType>
    <Restriction>
        <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&amp;'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="..." />
    </Restriction>
</ClaimType>

Мне это не кажется "правильным". Порядок дочерних элементов <ClaimType> не имеет значения, верно?

Указан ли этот порядок в файл XSD? (Я слышал, что могу настроить VS Code для проверки моего XML на XSD, мне нужно выяснить, как это сделать ...)


person spottedmahn    schedule 29.03.2018    source источник


Ответы (1)


Да. "> тип" ClaimType " требует, чтобы дочерние элементы добавлялись в объявленной последовательности, как определено в схема XML; в противном случае он не проходит проверку схемы.

Это также относится ко всем другим типам, которые определены этой схемой XML.

person Chris Padgett    schedule 29.03.2018