当我尝试上传以下声明时,它失败了:
<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.!#$%&'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="..." />
</Restriction>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="blah" />
<Protocol Name="OpenIdConnect" PartnerClaimType="blah" />
</DefaultPartnerClaimTypes>
</ClaimType>
出现以下错误:
无法上传政策。原因:验证失败:在租户“mytenant.onmicrosoft.com”的策略“B2C_1A_TRUSTFRAMEWORK_BUILDINGBLOCKS”中发现 1 个验证错误。
在租户“mytenant.onmicrosoft.com”的策略“B2C_1A_TRUSTFRAMEWORK_BUILDINGBLOCKS”的第 172 列第 10 行发现架构验证错误:命名空间中的元素“ClaimType”' http://schemas.microsoft.com/online/cpim/schemas/2013/ 06 '在命名空间' http://schemas.microsoft.com/online/cpim/schemas/2013/06 '中有无效的子元素'DefaultPartnerClaimTypes '。
预期的可能元素列表:命名空间“ http://schemas.microsoft.com/online/cpim/schemas/2013/06 ”中的“InputValidationReference, PredicateValidationReference ”。
如果我向上移动 一点,政策就会上传。 <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.!#$%&'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="..." />
</Restriction>
</ClaimType>
这对我来说似乎不“正确”。孩子的顺序<ClaimType>
应该不重要吧?
XSD 文件中是否指定了该顺序?(我听说我可以配置 VS Code 来针对 XSD 验证我的 XML,我需要弄清楚如何做到这一点......)